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