请问spacemacs索引和补全问题

作者来回答一下 :wink:

  • 你提到的结构体成员补全,我理解就是敲完 . 以后弹出所有的成员。Citre 暂时还做不到,但有一些计划:Citre: 先进的 Ctags 前端 - #435,来自 kajiryoji

  • Citre 比起 lsp 优点就是可靠、速度快、在巨型工程里速度基本不变慢。缺点是由于不能准确理解语义,给你的候选会比实际需要的多。对 C 这种没有 namespace 的语言我觉得不是什么问题,而且很多 language server 反过来经常有「想要的没有给我」的问题。我觉得多给我一点好过漏掉。

  • 一般我们用 ctags 就是只会 tag 整个工程,这样外部库就不能补全和跳转了,lsp 不用配就能支持外部库。解法是生成 tags 的时候手动把外部库(或者 system header)的路径加进来,会麻烦一点,但也就麻烦一次。

对 Citre 和 其他工具的长短,我写了详细的文档:citre/compare-with-other-tools.md at master · universal-ctags/citre · GitHub