company gtags 补全的一些问题


#1

后端:gtags 如下: 1.忽略大小写:输入小写内容不能给出大写匹配选项。 2.变量不能补全:gtags 不能补全定义的变量(int等) 3.实时更新数据:才定义函数后必须重新更新数据,才能给出补全

尝试:completion-ignore-case 无效

     请问你们是怎么解决的?

平台:window10 emacs26.1


#2

ccls: https://github.com/MaskRay/ccls


#3

company-gtags 是最简单的,所有查询的活都交给命令行程序 global了。

具体代码见 https://github.com/company-mode/company-mode/blob/f6974e3103497afe01da2ad4d2ea3668ad68bc27/company-gtags.el#L70

这是一个贡献代码的好机会,就是加个可选的 -i 参数(man global后显示此行帮助-i, --ignore-case Ignore case distinctions in the pattern.

实时更新很容易, man global 看一下其 -u 参数。在 after-save-hook(shell-command "global -u")应该够快了。


#4

感谢
但我更偏向使用commany gtags 简单一点 这也是一个预备方案


#5

简单尝试一下,使用完全ok。
具体配置还需要自己研究一下(新手) 十分感谢


#6

目前大小写和实时数据更新大致解决,但变量补全问题仍然存在。
这似乎是关于global的问题。在global官网和用man查询后发现,global似乎没有将变量加入数据库(也有可能是我没发现,如果知道请指出错误,谢谢)。
目前是将其他后端(clang)绑定快捷键勉强能够使用。
(随便一提,试了一下 etags 有相同的问题)


#7

默认不会提取变量的。你可以自己设置。不过我一般就用company自带的其他backend来自动完成变量了。看一下 company-backends . 实际上我还同时用hippie-expand,所以自动完成变量对很方便


#8

… 是我整错了