把 <language>-mode 替换成 <language>-ts-mode 之后,company-mode 的行为发生变化

例如,我将 c-mode 替换为 c-ts-mode 之后,company 的自动补全似乎就无法调用当前的自动补全后端(clangd)了 ,导致其补全行为与『开全局补全时,在文本文件中进行文本补全』一样了。最近将 lua-mode 换成 lua-ts-mode 之后也出现了同样的问题。

并没有很具体的案例(因为确实有点懒),但我想问问大家有没有碰到类似的情况呢?想知道这是否是一个共性问题。

PS:-ts-mode 并未出什么功能上的问题,libtree-sitter 文件也是好好下载好了,放在 treesitter 目录里了,ts 可以正常语法高亮与代码缩进,甚至 flycheck 也能正常运行。

是不是没下treesitter语法

如果你说的是 libtree-sitter-.so,那我确实是下载好了的。

-ts-mode 也是能正常语法高亮以及缩进的。

Try try this

(add-to-list 'major-mode-remap-alist '(c-mode . c-ts-mode))

你不说你用的 LSP 前端是什么

c-ts-mode可能不会执行c-mode-hook里的钩子,要手动执行一下。

如果不是钩子的问题,直接手动运行M-x company-clangd试试。