gnu global 使用介绍

主要介绍gnu global的安装,配置,使用,其中说明如何配置universal-ctags和pygments作为解析器插件,来分析更多语言

gnu global practices 不断更新

如果觉得有用,麻烦赞一下,让更多人看到

4 个赞

不错,不过global也是基础静态符号分析建立索引的吧,和lsp比较优势还是不明显。

简单的代码还可以,复杂的就不行了,比如pjsip库,局限性较大

那该如何解决,有什么好的推荐么?

你在用cquery?我配置了一下,没有设置成功,可否让我看下你的配置?

当时用过一段时间rtags, 跳转效果挺好, 据说cquery比rtags更好, 但我还没在大工程里用过cquery

很抱歉,我不写c,所以没用cquery.

用过cquery,也用过rtags

觉得rtags可能会好一点。

cquery在某些时候会卡着不动 (比如你看llvm源码的时候,rtags需要创建索引,但是没有给llvm创建过索引,那应该很费时间和空间)

我每天用https://github.com/MaskRay/ccls/wiki/Emacs读llvm原始碼。“卡着不動”是什麼情況。rtags給llvm建立索引感覺會佔用幾個GB吧,find references很可能慢得受不了(但可能記憶體省,cquery/ccls要佔用大約2G,llvm+clang+lld+compiler-rt)

原始碼

请问您是台湾省的还是香港特别行政区的呢?

顺便谢谢你上面的ccls,还是知之甚少

補了索引的例子https://github.com/MaskRay/ccls/wiki/Getting-started#cases

llvm+clang+extra+lld+compiler-rt (2017-06-10)

initial indexing: 1 hour; load: 20s
resident set size is about 1GiB (the peak RSS during indexing is below 2GiB)
du -sh .ccls-cache => 580M

我比較想看到有人分析GNU Global存儲設計(GTAGS GRTAGS,Berkeley DB or sqlite 3)。作爲一個通用工具,GNU Global還是不錯的。如果專用特定語言,專屬的language servers往往提供更豐富的功能,但很多lang servers非常遺憾還是不注重持續性,應該向這些前輩學習。我現在是幾乎只看C++,只用自己的ccls,比較少關心其他language servers了。

GNU Global不做語義分析自然是快得多了,增量索引資料庫更新方式我也蠻想瞭解的。

同樣好奇rtags檢索的時間、RSS和cache size:印象中似乎是5x 10x於cquery,而cquery cacheFormat:msgpack比ccls預設cacheFormat:binary要大些

1 个赞

新的链接https://phenix3443.github.io/notebook/emacs/gnu-global-manual.html

1 个赞