2017-02-04 3 views
0

CodeLite 10.0.1を使用してUbuntu 16.04でC++ 11をプログラミングしています。次のようにCodeLite 10.0.1はイテレータに対してオートコンプリートできませんか?

私のプロジェクトからの抜粋です:今すぐ

#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->の提案はありません。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の両方の補完を有効にしました。

どうすればこの問題を解決できますか?

答えて

0

CodeLiteでclangコード補完を有効にする必要があります。 Settings->Code Completion->Clang->Enable clang code completion

次に、実行します:から 「増分」バージョンを何 Workspace->Parse workspace - incremental

+0

は非増分バージョンにはないということですか? – Shuzheng

+0

"インクリメンタル"は 'compile_commands.json'を生成しますが、フルバージョンはキャッシュをクリアしてすべてを解析します。 clangコードの補完には、 'compile_commands.json'ファイルだけが必要です。両方ともそれを生成しますが、 "インクリメンタル"バージョンはそれをはるかに高速に行います:) – Eran

+0

私はすでに完全なコード補完を経験していませんか? – Shuzheng

関連する問題