company 候选菜单消失

不清楚怎么配置才能让它正常; 现象是这样的

vector<int> v;
v.push_back();

当输入 v. 的时候, 点号会触发 candidate popup, 此时可以使用上下键选中, 使用 enter 键输入选中的项; 但若继续直接输入 p, candidate popup 则会消失, 直到继续输入 ush, 此时才会再次显示候选, 并且这次不会随着继续输入 _ 而消失

然而, 在 spacemaces 下, 似乎一切正常; 我观察了, 激活的 backend 都是 capf

配置如下:


(use-package company
  :ensure
   :init (setq company-backends '(company-capf))
  :custom
  (company-idle-delay 0.5)
  :bind
  (:map company-active-map
        ("C-n". company-select-next)
        ("C-p". company-select-previous)
        ("M-<". company-select-first)
        ("M->". company-select-last))
  :config
   (setq lsp-completion-provider :clang)
  )

(use-package ccls
    :ensure t
    :config
    (setq ccls-executable "/usr/bin/ccls")
    (setq lsp-prefer-flymake nil)
    (setq-default flycheck-disabled-checkers '(c/c++-clang c/c++-cppcheck c/c++-gcc))
    :hook ((c-mode c++-mode) .
	       (lambda () (require 'ccls) (lsp))))


具体不太清楚,但有一点肯定错了,lsp-completion-provider 的值只能是 :none 或者 :capf。

lsp-mode 的问题, 用旧版本替换问题就消失了