代码之家  ›  专栏  ›  技术社区  ›  Dmitry Yudakov

用于智能参考搜索的Linux的C++ IDE

  •  6
  • Dmitry Yudakov  · 技术社区  · 16 年前

    是否有一个IDE支持C++,并对引用进行真正的智能搜索?“引用”是指在整个项目或工作区中使用类(或其成员)、变量、函数。

    有很多IDE提供它。他们中的一些人似乎只是搜索同名的文本,给出了很多东西,其他人更聪明,检查上下文(如类边界、名称空间),但不够准确。

    到目前为止,我所做的最好的尝试是视觉上的光滑,但还有更多的希望。

    class C1
    {
        int foo;
    };
    class C2
    {
        int foo;
    };
    

    例如,在这种情况下,搜索 C1::foo 我不想要的证明人 C2::foo 也要展示。

    那么,有没有一个这样聪明的IDE呢?

    编辑2

    到目前为止,每个人都有10倍的答案。

    我试过 日食 ,引用搜索似乎比较好,但是索引中等大小的项目需要20分钟,5次中的4次会耗尽内存并崩溃。我试着增加它和一些其他的建议,它得到了一点改善,但仍然相当缓慢和讨厌这些崩溃。

    我试过 KDeal3 但是这个问题中提到的功能不是很高级-似乎只是非常高级 grep 基于文本搜索。

    编辑4

    K级别4 -我试着让它工作,但是最新的测试版它对于定制的makefile项目是不可用的,我无法用它做任何事情。

    编辑5
    我很惊讶,但是 QT创建者 我的测试做得很好。它似乎不会创建一些标记/索引文件,但不知何故,它能够非常精确地显示变量/函数/类的用法。不幸的是,当遵循函数的定义时,它似乎不能很好地与模板一起工作。

    上面提到的任何一个IDE都不能在处理引用、虚拟函数等方面与可视化slickedit进行竞争。qt creator是最接近的,所以我将选择它作为我问题的答案。

    7 回复  |  直到 16 年前
        1
  •  2
  •   Sharique    16 年前

    我认为qt创造者可以帮助你。新的预览2.0中添加了一些新功能。

        2
  •  3
  •   Adrian Fâciu    16 年前

    我想你可以用 Eclipse ,主要是我认为它可以做你想做的,或者几乎足够了。阿尔索 here' 它的搜索选项的简要描述。

        3
  •  2
  •   Sebastian    16 年前

    不,我不认为我们会看到与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);
    }
    

    在这两种情况下,很难确定实际引用了哪个类。

        4
  •  1
  •   Xolve    16 年前

    你试过网豆吗?Eclipse的竞争对手——它拥有所有的功能,比如Web开发、移动应用程序IDE、插件,几乎可以让任何事情都做得到。所有这些都降低了CPU和内存占用。它确实正确地解析了名称。

        5
  •  0
  •   hlovdal    16 年前

    我没有用过 KDevelop 我自己,但是我觉得它对源代码做了一些严肃的分析,并且能够通过编辑器访问源代码信息。它至少有一些先进的 code assistant functionality .

        6
  •  0
  •   Anon    16 年前

    你必须试试Kdevelop 4,而不是老版本。

        7
  •  0
  •   Kangkan    16 年前

    您可以查看codeblocks[ http://www.codeblocks.org/] 。我刚开始使用它,但没有按照您的要求进行测试。所以我现在不要求10倍。但你可以试试。它是开源的,而且是好的。

    http://www.codeblocks.org/] . 我刚开始使用它,但没有按照您的要求进行测试。所以我现在不要求10倍。但你可以试试。它是开源的,而且很好。