是否有一个支持C ++的IDE真正搜索引用? “引用”是指在整个项目或工作区中使用类(或其成员),变量,函数。
有很多IDE提供它。其中一些似乎只是搜索具有相同名称的文本提供了大量的东西,其他更聪明并检查上下文(如类边界,命名空间)但不够准确。
迄今为止我尝试过的最好的是Visual SlickEdit,但还有更多希望。
class C1
{
int foo;
};
class C2
{
int foo;
};
例如,在这种情况下搜索C1::foo
引用时,我也不希望显示C2::foo
。
那么,IDE是否会如此智能?
EDIT2
到目前为止,每个人都有10倍的答案。我尝试过 Eclipse ,引用搜索似乎相对较好,但索引中等大小项目需要20分钟,而内存和崩溃耗尽4倍。我尝试增加它和其他一些建议并且它有所改善,但仍然非常缓慢且烦人的这些崩溃。
我尝试了 KDevelop3 ,但此问题中提到的功能不是很先进 - 似乎只是非常高级grep
的文本搜索。
Edit4
KDevelop4 - 我试图让它工作,但是最新的测试版对于自定义makefile项目来说是无法使用的,我无法用它做任何事情。
Edit5
我很惊讶,但 QT Creator 在我的测试中表现得非常好。它似乎没有创建一些标记/索引文件,但以某种方式设法非常精确地显示变量/函数/类的用法。不幸的是,当遵循函数定义时,模板似乎无法正常工作。
所提到的IDE中没有一个可以在使用引用,虚拟函数等方面与Visual SlickEdit竞争.QT Creator是最接近的,所以我会选择它来回答我的问题。
答案 0 :(得分:3)
答案 1 :(得分:2)
不,我认为我们不会看到与C#或Java编辑器中的实现一样好的实现,原因有两个:
1)预处理器:
#ifdef _DEBUG
#define FOO(x) C1(x).foo
#else
#define FOO(x) C2(x).foo
#endif
2)模板:
template<class C> void Method(C const& c) {
printf("%d", c.foo);
}
在这两种情况下,很难确定实际引用了哪个类。
答案 2 :(得分:2)
我认为Qt-Creator可以帮到你。新预览2.0中添加了一些新功能。
答案 3 :(得分:1)
你有没有试过Netbeans。关闭Eclipse的竞争对手,它具有Web开发,移动应用程序ide,插件等所有功能,几乎可以做任何事情。所有这些都具有较低的CPU和内存占用。它确实正确地解析了名称。
答案 4 :(得分:0)
我自己没有使用KDevelop,但我得到的印象是它对源代码进行了一些认真的解析,并且能够通过编辑器访问源代码信息。它至少有一些高级code assistant functionality。
答案 5 :(得分:0)
你必须尝试KDevelop 4,而不是旧版。
答案 6 :(得分:0)
您可以查看CodeBlocks [http://www.codeblocks.org/]。我刚开始使用它,但没有根据您的要求进行测试。所以我现在不要求10X。但你可以尝试一下。它的开源和良好的。