在CEDET中,次要模式semantic-idle-summary-mode
显示有关echo区域中点下的符号的信息。我非常喜欢这种模式,因为它有助于我记住,例如,我正在调用的函数需要哪些参数。更改显示语义摘要的位置
问题是,这是一个有关显示在回声区域的小错误。由于每当点下有符号时它都会自动激活,它有时会隐藏在echo区域中显示的有用信息(毕竟,这是emacs用来告诉你的东西的区域)。
有没有办法在其他地方显示摘要信息?工具提示是理想的,但ecb框架之一也是可以接受的。
在CEDET中,次要模式semantic-idle-summary-mode
显示有关echo区域中点下的符号的信息。我非常喜欢这种模式,因为它有助于我记住,例如,我正在调用的函数需要哪些参数。更改显示语义摘要的位置
问题是,这是一个有关显示在回声区域的小错误。由于每当点下有符号时它都会自动激活,它有时会隐藏在echo区域中显示的有用信息(毕竟,这是emacs用来告诉你的东西的区域)。
有没有办法在其他地方显示摘要信息?工具提示是理想的,但ecb框架之一也是可以接受的。
首先想到的是变量tooltip-use-echo-area
,它控制显示工具提示的位置/方式。设置为t
时,所有工具提示都会显示在回声区中。它在你的系统上的价值是什么?也许可以强制cedet通过将该变量设置为零来使用实际(弹出式)工具提示。
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)))
)
我也有类似的需求,因为你, 我这个extension解决它。
正如你可以在这个screenshot, 中看到的那样,它在调用时显示函数参数,而不改变回声区域。
一些整齐的特点是:
+1我需要知道为好。 – kindahero 2012-03-31 05:58:50