我的company-backends如下图一,并且我开启了citre-mode(会自动注册company-capf);结果我发现我在补全时候除了company-capf,其他backends都不见了。。。
我意思是所有补全只来自company-capf
这个现象是正常的,当有一个 backend 返回结果后,在它后面的 backend 就不会被调用了。
如果想让 2 个 backend 同时起作用,可以使用 :with
将它们组合起来,具体可以看一下 company-backends 的 docstring.
一个简单的例子:
(setq company-backends '((company-capf :with company-tempo)
company-files
(company-dabbrev-code company-keywords)
company-dabbrev
;; HACK: prevent `lsp-mode' to add `company-capf' back.
company-capf)))
表示优先使用 company-capf
与 company-tempo
的组合,然后再是剩下的。
当然也可以使用 company-try-hard 来取得所有 backends 的结果(不过我没用过)。
2 个赞
我先尝试一下,谢谢了