doom-emacs 中使用 ccls,补全顺序错乱

IMG_20200726_020656_960

已经检查了自己的配置部分,使用了 doom 的 lsp, (cc +lsp), (company +childframe) 等模块,然后进行补全时就出现了上面的问题,std 中的各种函数变量的优先级都非常非常低,甚至即使完全匹配都不可能出现在第一位。而使用 clangd 则补全部分完全正常。

估计是 lsp-mode 的问题,我写 java 时体验也类似,后面找到一个变量 lsp-completion-styles,设置过之后体验瞬间变好了,不过可惜这个变量已经被删了,目前没有找到类似功能的变量。

Eglot 虽然功能少了点,其实也能用,可以试试。

eglot 的话感觉功能差不少啊,ccls 中我最喜欢的多色高亮似乎也不能用,那样的话不如换 clangd 算了。(不过 clangd doc 显示问题也挺蛋疼的)

锅应该不是在ccls。我这儿spacemacs中ccls+lsp-mode多色高亮和补全都是好的,并不知道你为什么补全是错的

有可能是company-prencisent这个包引起的,它会根据频率排序。最近的doom里已经把这个包去掉了

大神, 我正在学习配置doom下的C++环境, 能不能求分享一下您的配置?

可以看一下我这个

好全面的配置啊! 灰常灰常感谢!!!