2

我使用 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 可访问的选项吗?

谢谢,

卡尔

4

2 回答 2

2

我想它是其中之一:

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

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

  • 您想使用“Full C/C++ Indexer”而不是“Fast C/C++ Indexer”

于 2008-09-12T15:16:52.597 回答
1

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

于 2009-05-07T20:59:53.777 回答