3

適切なオプションで実行するのに慣れている新しいファイルを調査するためctagsに、問題は明らかにこのプログラムが C++11 をサポートしていないことであり、このプログラムの開発が数年前に終了したことを発見するまで、問題なく使用していました。

clang現在、C++11以降に対応する同等のツールが必要ASTですctags.

たとえば、これはctagsC++ モードで簡単に一覧表示できるエンティティです。

ctags --list-kinds=c++
c  classes
d  macro definitions
e  enumerators (values inside an enumeration)
f  function definitions
g  enumeration names
l  local variables [off]
m  class, struct, and union members
n  namespaces
p  function prototypes [off]
s  structure names
t  typedefs
u  union names
v  variable definitions
x  external and forward variable declarations [off]

clang同様のタスクを実行できますか?

4

2 に答える 2

6

rtagsツールを見てください。これは、clang を使用してプロジェクト全体を再コンパイルします。その後、それを使用してソースをナビゲートできます。唯一の問題は、プリプロセッサの実行後に AST がビルドされるため、マクロによって無効にされたコードはナビゲーションに使用できないことです。

RTagsプロジェクトは、 emacsから制御できる一連の elisp バインディングを維持します。vim への統合については、 lyutsまたはShane Harperによるサードパーティ プロジェクトを参照してください。

于 2014-11-17T14:53:59.473 に答える
0

llvm/clang プロジェクトには、ast からタグ ファイルを生成するツールが含まれていません。ただし、clang を使用してこれを行うgithubのプロジェクトがいくつかあります。

次の 2 つのプロジェクトが注目を集めました (スター、Issue、プル リクエスト)。

残念ながら、最近のコミットはありませんが、作成者は提起された問題にまだ対応しています。

免責事項リンクのみの回答はお勧めできません。プロジェクトをテストし、それらがExuberant-ctagsまたはUniversal-ctagsとどのように比較されるかを確認する時間を見つけたら、この質問を拡張します。

于 2016-11-02T09:14:29.330 に答える