2008-09-12 99 views
2

我使用Eclipse作为C++项目的IDE,我非常喜欢它告诉我给定符号在哪里定义以及函数的参数是什么。如何调整Eclipse的C++索引器?

但是,有一个问题:我也使用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可访问的选项吗?

感谢,

卡尔

回答

2

我想像它的一个:

  • Eclipse不希望在树中显示非C++资源(我有问题与此)

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

  • 您要使用的 “完整的C/C++索引”,而不是 “快速C/C++索引”

+0

谢谢!第一点可能是一个问题。我已经完成了另外两个。 – 2008-09-15 12:55:35

1

的CDT解析器/索引不会承认这样的不可思议的扩展。你唯一能做的就是在Paths和Symbols属性页面上定义宏来欺骗解析器。尝试创建具有空体的$hdr,$end$src的宏。这样预处理器将删除它们,解析器不会窒息它们。