Изменить место отображения семантической сводки - PullRequest
4 голосов
/ 30 марта 2012

В CEDET второстепенный режим semantic-idle-summary-mode отображает информацию о символе под точкой в ​​области эха. Мне очень нравится этот режим, так как он помогает мне вспомнить, например, какие аргументы нужны функции, которую я вызываю.

Проблема в том, что при отображении в области эха возникает небольшая ошибка. Поскольку он автоматически активируется всякий раз, когда под точкой находится символ, иногда он скрывает полезную информацию, отображаемую в области эха (в конце концов, это та область, которую emacs использует, чтобы рассказать вам что-то).

Есть ли способ показать сводную информацию где-нибудь еще? Всплывающая подсказка была бы идеальной, но также приемлем один из кадров ecb.

Ответы [ 3 ]

0 голосов
/ 03 апреля 2012

semantic-idle-summary-mode использует функцию eldoc-message и несколько других запросов eldoc, чтобы определить, когда отображать сообщения. Это значит, что он не должен скрывать полезную информацию.

Поскольку eldoc является предпочтительным режимом для предоставления аналогичной сводной информации в буферах Emacs Lisp, лучше всего настроить eldoc, но я не видел способа сделать это, поскольку eldoc-message настроен на постоянный вызов сообщения.

В любом случае, это означает, что вы можете использовать defadvice для переопределения eldoc-message для использования всплывающей подсказки, и у вас будет свое решение.

Приведенный ниже фрагмент предположения о том, как использовать defadvice, но я не дал ему попробовать.

(defadvice eldoc-message (around bruce-mode activate)
  "Make eldoc display messages as a tooltip."
  (if (some condition that means I want to use a tooltip)
      (bruce-eldoc-message (ad-get-arg 0))
    ad-do-it))

(require 'tooltip)

(defun bruce-eldoc-message (&rest args)
  "My version of displaying a message for eldoc."
  (if (null (cdr args))
      ;; One argument
      (tooltip-show (car args))
    ;; Else, use format
    (tooltip-show (apply 'format args)))
  )
0 голосов
/ 21 июля 2013

У меня была такая же потребность, как и у вас, и я обратился к нему с этим расширением .

Как вы можете видеть на этом скриншоте , он показывает аргументы функции в точке ее вызова, не изменяя область эха.

Некоторые полезные функции:

* * 1010 Показывает все перегруженные функции, включая конструкторы, где это необходимо. Выделение жирным шрифтом текущего аргумента. Перейти к определению функциональности для текущего варианта функции.
0 голосов
/ 31 марта 2012

Первое, что приходит на ум, - это переменная tooltip-use-echo-area, которая контролирует, где и как отображаются подсказки. Если установлено значение t, все подсказки отображаются в области эха. Какова его ценность в вашей системе? Возможно, было бы возможно заставить cedet использовать реальные (всплывающие) всплывающие подсказки, установив для этой переменной значение nil.

...