company 有时候会显示的 <f> 是什么意思?

如题,有时候备选项的右边会有个 ,一直不知道什么意思,也没有查到解答。

估计是函数(Function),不过我没看过对应实现代码或者说明。

我想不是,因为并不是所有函数后面都有它,甚至同一个东西有时候有有时候没有,感觉跟当前的环境有关系。。。

我没注意,你举个反例呀?

直接在空 buffer 里弄了一下:

2019-04-28-140040_659x190_scrot

然后发现区别似乎在于前面有没有 ',有的话备选里面会有变量和函数,函数会带 <f>,没有的话备选里只有函数,而且没有 <f>。感觉应该是 emacs-lisp-modecompletion-at-point 函数给的信息。

1 个赞

噢,没发现这点。我猜测:加括号时只可能是函数,所以没必要显示;而用 ' 时变量和函数都有可能,所以表示函数以示区别。

(我以前看过 Emacs Lisp 代码补全的来源,所以知道这点)

有可能,印象中 elisp-mode.el 专门写了 Company 支持的代码,尽管 Company-mode 并不是是自带的。

你的感觉是对的,C-h f elisp-completion-at-point 写到:

In contexts where any symbol is possible (following a quote, for example), functions are annotated with "<f>" via the :annotation-function property.

原来如此 _(°:з」∠)_