13

私はしばらくの間omniCppComplete+ctagsを使用してきましたが、コードの補完をさらに改善したいと思っています。

ここでの提案[ 1 ]によると、gccsenseとclang_completeは代替手段のようです。しかし、どちらが良いかわかりません。彼らのパフォーマンスについて何か考えはありますか?
ありがとう!

更新: clang_completeを試した後、完了速度が非常に許容できないことがわかりました。次に、libclang.dylibを使用して試してみました。これにより、速度は大幅に向上しますが、それでも遅れを感じるようになります。今のところctagsに固執する必要があると思います。

4

2 に答える 2

21

おそらくgccsenseではなくclang_completeを使用する必要があります。

ここでの要点は、2つのアーキテクチャです。両方のソリューションの背後にある考え方は非常に似ています。内部コンパイラ(gcc)情報(​​抽象構文木)にアクセスしないと通常のC ++補完を取得できませんが、gccはそのための十分なインターフェイスを提供しません。ただし、この情報にアクセスするための実装部分は、ここではまったく異なります。gccsenseは一種の「ハック」です。これは、プラグインにさらに提供するために必要な情報を格納できるgccのカスタムビルドですが、clang_completeは代替手段を使用して逆になります。コンパイラ:clang、その作成の主な目標の1つは、外部ツールからASTに簡単にアクセスできるようにすることでした。

したがって、gccsenseを使用する場合は、一種のカスタムgccコンパイラを使用してコードをコンパイルする必要があります。これは、すでに少し古くなっており(gccsenseはgcc 4.4を使用しています)、機能の開発者によるサポートが常に必要になります。それどころか、clang_completeはclangコンパイラにあまり依存せず、外部ツールとして使用します。

パフォーマンスに関しては、clangはgccよりも高速になるように設計されています。Clang_completeは、MacOS / LinuxよりもWindowsの方が少し遅くなる可能性がありますが、gccsenseはその時点でWindows用にコンパイルすることさえできません。

于 2011-04-01T19:51:30.847 に答える
2

GCCsenseはWindows上に構築できます。ここでgcc4.5.2のパッチを参照してください:http: //forums.codeblocks.org/index.php/topic,13812.msg94824.html#msg94824

gccsenseはgccの単なるハックであることを認めますが、clangは最初からはるかに優れたデザインを持っています。

誰もがgcc/gccsenseを改善できることを願っています。

于 2011-09-01T06:28:57.093 に答える