最好的C ++索引器?


11

我最近从Eclipse CDT切换到了以C ++层为开发环境的Spacemacs

到目前为止...太棒了!但是,我想念的关于Eclipse的事情之一就是它的indexer

目前,我正在使用带有gtags层的GNU Global。gtags的问题在于它是一个标记系统,而不是索引器。

例:

搜索set类中调用的函数的Field引用会在我的代码库中返回165个引用,其中只有一个实际上是对Field::set

set在CDT中搜索对的引用将返回1个结果。

我可以在emacs中使用更好的索引解决方案吗?

在线搜索我发现此页面列出了3个基于clang的索引器。

问题:

  • 这些工具中的任何一种都会提供更好的索引体验吗?
  • 有什么建议可以使用吗?
  • 有没有列出更好的选择?

注意:

我也一直在使用clang-complete代码完成功能,但是发现它非常慢。异常缓慢。(我不是唯一经历过这种情况的人)如果任何索引解决方案都遇到相同的问题,那么它将无法正常工作。


并不是说我正在处理C ++项目,但是也许您可以在emacs.zeef.com的C ++部分找到有用的内容?
ReneFroger '16

我注意到它clang-indexer没有任何最新的进展,并且作者本人说这很“粗糙”-因此,我不会在其他两个方面尝试这样做
史蒂夫·洛里默

rtags似乎是列出的3中最受欢迎的
Steve Lorimer

1
严格来说,这个问题与Emacs有什么关系吗?
PythonNut

1
按照目前的说法,该问题是非常主观的,可能会产生主要基于观点的答案。请编辑您的帖子以使问题更具体。

Answers:


4

我只能告诉rtags我在过去1-2年中一直在积极使用。

rtags可以正常工作。它基于编译器,并提供正确的代码导航。作为emacs用户,过去十年来我一直在寻找一些东西。

设置可能有些棘手。我建议看一下cmake-ide,它会自动完成部分设置。 https://github.com/atilaneves/cmake-ide

此博客文章也可以帮助 https://vxlabs.com/2016/04/11/step-by-step-guide-to-c-navigation-and-completion-with-emacs-and-the-clang-based-标签/

您也可以看看(或使用)我自己的配置:https : //github.com/jardon-u/dotfiles/blob/master/emacs.d/development/c/_init.el 我结合使用了cmake- ide(项目发现),具有讽刺意味的(用于代码完成)和rtags(用于代码导航)。我很确定这可以简化,因为每种模式之间有些功能重叠,但是结果达到了我对现代IDE的期望。

rtags还提供了代码重构功能,但是功能非常有限(主要是重命名)


1
此答案被接受已经有两年了,您还在使用rtags吗?我很好奇是否更改了安装文件或引入了更简单的安装程序。有任何信息吗?您可以共享安装/配置文件吗?
A_P

@A_P由于某种原因,我现在只看到您的评论。我仍在使用rtags。您应该再次检查cmake-ide页面+我的配置(我的答案中的链接)。我还自动完成了大多数安装。检查:github.com/jardon-u/dotfiles/blob/master/install.sh(尽管emacs版本可能不是最新的。我将尝试更新它)
log0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.