4

在 CEDET 中,次要模式semantic-idle-summary-mode显示有关回波区域中点下方符号的信息。我真的很喜欢这种模式,因为它可以帮助我记住,例如,我正在调用的函数需要哪些参数。

问题是,在回声区域显示有点问题。由于它会在点下有符号时自动激活,因此它有时会隐藏回显区域中显示的有用信息(毕竟,那是 emacs 用来告诉您信息的区域)。

有没有办法在其他地方显示摘要信息?工具提示是理想的,但其中一个 ecb 框架也是可以接受的。

4

3 回答 3

0

我和你有类似的需求,我用这个扩展来解决它。

正如您在此屏幕截图中看到的那样,它在调用点显示函数参数,而不会更改回显区域。

一些简洁的功能是:

  1. 显示所有重载函数,包括适当的构造函数。
  2. 以粗体突出显示当前参数。
  3. 跳转到当前功能变体的定义功能。
于 2013-07-21T15:56:52.640 回答
0

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)))
  )
于 2012-04-03T00:50:04.930 回答
0

首先想到的是tooltip-use-echo-area控制工具提示显示位置/方式的变量。当设置为 时t,所有工具提示都显示在回显区域中。它对您的系统有什么价值?也许可以通过将该变量设置为 nil 来强制 cedet 使用实际(弹出)工具提示。

于 2012-03-31T10:39:07.110 回答