在 CEDET 中,次要模式semantic-idle-summary-mode
显示有关回波区域中点下方符号的信息。我真的很喜欢这种模式,因为它可以帮助我记住,例如,我正在调用的函数需要哪些参数。
问题是,在回声区域显示有点问题。由于它会在点下有符号时自动激活,因此它有时会隐藏回显区域中显示的有用信息(毕竟,那是 emacs 用来告诉您信息的区域)。
有没有办法在其他地方显示摘要信息?工具提示是理想的,但其中一个 ecb 框架也是可以接受的。
semantic-idle-summary-mode
使用该函数eldoc-message
和其他一些 eldoc 查询来确定何时显示消息。这意味着它应该非常擅长不掩盖有用的信息。
由于 eldoc 是在 Emacs Lisp 缓冲区中提供类似摘要信息的首选模式,因此最好配置 eldoc,但我没有看到这样做的方法,因为eldoc-message
似乎配置为始终调用 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)))
)
首先想到的是tooltip-use-echo-area
控制工具提示显示位置/方式的变量。当设置为 时t
,所有工具提示都显示在回显区域中。它对您的系统有什么价值?也许可以通过将该变量设置为 nil 来强制 cedet 使用实际(弹出)工具提示。