【问题标题】:How to tweak Eclipse's C++ Indexer?如何调整 Eclipse 的 C++ 索引器?
【发布时间】:2010-09-08 16:23:53
【问题描述】:

我使用 Eclipse 作为我的 C++ 项目的 IDE,我希望它告诉我给定符号的定义位置以及函数的参数是什么。

但是,有一个问题:我还使用Lazy C++,这是一个获取单个源文件并生成 .h 和 .cpp 文件的工具。那些 .lzz 文件看起来像头文件,但是这个工具支持一些非常温和的语法优势,比如将嵌套的命名空间组合成一个限定名称。此外,它有一些特殊的标签来告诉工具具体将什么放在哪里(在头文件中或在源文件中)。

所以我典型的 SourceFile.lzz 看起来像这样:

$hdr
#include <iosfwd>
#include "ProjectA/BaseClass.h"
$end

$src
#include <iostream>
#include "ProjectB/OtherClass.h"
$end

// Forward declarations
namespace BigScope::ProjectB
{
  class OtherClass;
}

namespace BigScope::ProjectA
{
  class MyClass : public ProjectA::BaseClass
  {
    void SomeMethod(const ProjectB::OtherClass& Foo) { }
  }
}

如您所见,它仍然是可识别的 C++,但有一些附加功能。

出于某种原因,CDT 的索引器似乎不想索引任何东西,我也不知道出了什么问题。在索引器视图中,它向我显示了一个空树,但告诉我它有大约 15000 个符号和更多的东西,我似乎都无法访问。

所以这是我的问题:我怎样才能让索引器输出更多关于它正在做什么以及为什么它会失败的信息,并且我可以调整它而不只是使用 GUI -可访问的选项?

谢谢,

卡尔

【问题讨论】:

    标签: c++ eclipse eclipse-cdt indexer lazy-c++


    【解决方案1】:

    CDT 解析器/索引器无法识别这种奇怪的扩展。您唯一能做的就是在 Paths and Symbols 属性页上定义宏来欺骗解析器。尝试为 $hdr$end$src 创建具有空主体的宏。这样预处理器将删除它们,解析器不会阻塞它们。

    【讨论】:

      【解决方案2】:

      我想它是以下之一:

      • Eclipse 不想在树中显示非 C++ 资源(我遇到过这个问题)

      • 您没有启用“首选项 > C/C++ > 索引器 > 索引所有文件”。

      • 您想使用“完整 C/C++ 索引器”而不是“快速 C/C++ 索引器”

      【讨论】:

      • 谢谢!第一点可能是个问题。其他两个我已经完成了。
      • 可能是因为我使用的是不同的 Eclipse 版本(Kepler),但你能告诉我在哪里启用“索引所有文件”吗?我在Preferences &gt; C/C++ General &gt; Indexer 中找不到它以及在哪里启用Full C/C++ Indexer 选项。谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 2013-06-12
      相关资源
      最近更新 更多