【问题标题】:CodeLite 10.0.1 cannot autocomplete for iterators?CodeLite 10.0.1 不能为迭代器自动完成?
【发布时间】:2017-02-05 02:17:56
【问题描述】:

我正在使用 CodeLite 10.0.1 在 Ubuntu 16.04 上编写 C++11。

我项目中的一个sn-p如下:

#include "llvm/Pass.h"
#include "llvm/IR/Function.h"
#include "llvm/Support/raw_ostream.h"
#include <map>
#include <string>

.............

    for (Function::iterator bb = F.begin(), e = F.end(); bb != e; ++bb) {
        bb-> // NO AUTOCOMPLETE SUGGESTIONS
        // assign integer ids to BasicBlock's
        if (bb->hasName()) {
            bbNameToId[bb->getName()] = bbId++; 
        } else {
            bb->setName(Twine(bbName + std::to_string(bbId)));
            bbNameToId[bb->getName()] = bbId++;
        }

        for (BasicBlock::iterator i = bb->begin(), e = bb->end(); i != e; ++i) {
            if(opCounter.find(i->getOpcodeName()) == opCounter.end()) {
                opCounter[i->getOpcodeName()] = 1;
            } else {
                opCounter[i->getOpcodeName()] += 1;
            }
        }
    }

现在,CodeLite 可以轻松地为上述代码中的 F 等函数提供自动完成建议。但是,对于bb-&gt; 没有建议,即Function::iterator。此外,代码完成适用于 C++ 标准库中声明的所有内容。

代码补全搜索路径设置如下:

/usr/include
/usr/include/c++/5
/usr/include/c++/5/backward
/usr/include/x86_64-linux-gnu
/usr/include/x86_64-linux-gnu/c++/5
/usr/lib/gcc/x86_64-linux-gnu/5/include
/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed
/usr/local/include 

项目构建良好。我已经启用了 CTags 和 Clang 补全。

我该如何解决这个问题?

【问题讨论】:

    标签: c++ c++11 ide codelite


    【解决方案1】:

    您应该在 CodeLite 中启用 clang 代码完成。 来自:Settings-&gt;Code Completion-&gt;Clang-&gt;Enable clang code completion

    接下来,运行: Workspace-&gt;Parse workspace - incremental

    【讨论】:

    • “增量”版本有哪些非增量版本没有的功能?
    • “增量”只生成compile_commands.json,而完整版会清除缓存并解析所有内容。 clang 代码补全只需要文件compile_commands.json。两者都会生成它,但“增量”版本会更快:)
    • 但是我不应该已经体验过完整的代码完成了吗?
    • 我的意思是我已经使用 IDE 一段时间了。
    • CodeLite 有 2 个完成引擎:clang 和内置。默认情况下没有启用 clang,所以如果你一开始就没有启用它,它就不会启动。 CodeLite 将尝试使用内置引擎完成,如果失败,它将回退到 clang 完成.如果启用 clang 后,您仍然没有完成,请查看输出视图中的 clang 选项卡 - 您应该在那里看到一些有用的信息
    猜你喜欢
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 2020-08-29
    • 2011-07-07
    相关资源
    最近更新 更多