来来来,给点对比的反馈?
最近看到cquery好火啊,它是不是对大项目补全支持的非常好啊?看看的有点心动,考虑要不要跳坑
(我只用过irony-mode和rtags,感觉补全我更喜欢irony-mode,当然rtags还提供了很好的跳转。通常我用irony-mode + helm-gtags。因为还用gtags跳转别的语言,c++下开两个tag系统有点臃肿,原谅我强迫症了😆)
来来来,给点对比的反馈?
最近看到cquery好火啊,它是不是对大项目补全支持的非常好啊?看看的有点心动,考虑要不要跳坑
(我只用过irony-mode和rtags,感觉补全我更喜欢irony-mode,当然rtags还提供了很好的跳转。通常我用irony-mode + helm-gtags。因为还用gtags跳转别的语言,c++下开两个tag系统有点臃肿,原谅我强迫症了😆)
我没用过irony, 不过我以前用的是ycmd+gtags, 不知道对你是否有帮助.
从使用体验上来讲, 两者感觉各有千秋, 整体上来讲感觉cquery的特性好一些, 当然这也有可能是因为以前不喜欢折腾所以ycmd配置的不好.
个人感觉的优点:
, g u
一直会提示failed, 很难受.个人感觉的缺点:
.cquery
文件的时候. 需要重启emacs.总体来讲个人还是喜欢cquery多一些, 入坑之后没有跳回去的打算…
卡有可能是bin/cquery给emacs发的消息太多了
比如:
{"jsonrpc":"2.0","method":"$cquery/progress","params":{"indexRequestCount":0,"doIdMapCount":0,"loadPreviousIndexCount":0,"onIdMappedCount":0,"onIndexedCount":0,"activeThreads":0}}
diagnostics publishSemanticHighlighting也关掉可能能快一点
语法解析和补全的实时刷新情况比较好
这个cquery在git checkout时不太好吧,需要 M-x cquery-freshen-index
补全方面有时候还是感觉有些奇怪, 尤其是头文件的补全.
Twitter上找 @scturtle 改
FAQ · jacobdufault/cquery Wiki · GitHub 有一些特别的 textDocument/definition 用法。
补足了一些rtags支持cquery没有的功能rtags-find-symbol-at-point
和 macro replacement-list 的单层展开 (rtags 这部分代码恨恶心……所以我不想照抄) Indexing references in macro replacement-list · Issue #331 · jacobdufault/cquery · GitHub
只用补全的化 cquery 和 irony-mode 没有本质区别,并不能提供更多东西,也可能在一些地方显得卡。
cquery对跳转的支持怎么样,有没有计划支持到像rtags那种程度。helm-gtags这种基于基本tags的跳转,当然没有rtags基于parsing的优秀(但我就是不太爽rtags,大概命里不合😹)。
rtags程度是哪些?Emacs · jacobdufault/cquery Wiki · GitHub
textDocument/definition
textDocument/references
workspace/symbol
等
不爽rtags什么地方?find-references太卡?(rtags返回cross references有很多冗余磁盘读取操作,on-disk storage做得很差;但cquery on-disk做得很少,内存占用高很多,比如索引cquery 200+MiB,而rtags索引cquery大概只有60)
也不是,我还没用它做很大的代码。就是使用过程感觉有点繁琐,特别要生成那个.clang-complete文件;应该可以写个函数简化下;因为我只是配置成功rtags试了几天,没有怎么用,所以没探索它的便捷使用方法。
谢谢,看了这个介绍页后,我也就要这些基本跳转;我以为cquery也像irony只提供基本的补全和语法检查的。多谢,我去多了解了解lsp和cquery。
T_T賣點主要就是cross references