Doxygenのインスタンスをインストールしてセットアップしたばかりですが、箱から出して、次のようなブロックでマークされている場合にのみ、コード内のTODOタグが見つかります。
/**
* @todo Foo
*/
見つからないようです:
// TODO Foo
// FIXME Bar
// @todo Baz
解析を処理するほとんどのIDEとバグトラッカーは問題ありませんが、Doxygenを構成してそれらを検索し、ToDoアイテムとしてリストする簡単な方法はありますか?
使用できる例と方法はいくつかあります。
有効なdoxygenコマンド(例:\todo
)を含む1行のコメントの場合、
/// \todo Some (optional) text
通常の2つではなく、3つのスラッシュに注意してください。 doxygenドキュメントの 特別なドキュメントブロック セクションの2番目のリストのポイント3を参照してください。これを使用して、新しいToDoアイテムをソースコードに追加できます。
一般に、Doxygen構成ファイルでエイリアスを定義することにより、カスタムタグ(FIXME
など)を定義できます。例えば
ALIASES += FIXME="\todo"
これにより、ソースコードに\FIXME
を記述でき、\FIXME
で始まるコメントが最終ドキュメントのToDoリストに含まれます。ここでの問題は、エイリアスの前に\
(または@
)記号を付け、コメントの先頭に3つのスラッシュを付ける必要があることです。これは、FIXME
sを残す場合に使用します。そのままのコードでは、オプションではありません。
最後に、別の方法、そしてあなたが探していると思うのは、 INPUT_FILTER
構成ファイルオプションを使用してソースファイルを前処理することです。このオプションは、doxygenがドキュメントを作成する前に各ソースファイルに適用されるコマンドを定義するため、TODO
とFIXME
のインスタンスを有効なdoxygenマークアップに置き換えるコマンドを定義できます。
INPUT_FILTER = "sed -e 's/\/\/.*FIXME/\/\/\/ \\todo/'"
このフィルターは、// FIXME
のすべてのインスタンス(//
とFIXME
の間の任意の量の空白(または空白なし))を/// \todo
に置き換えます。この置換は、doxygenによってのみ内部的に行われます。ソースファイルはディスク上で変更されません。
注:この最後のポイントは、質問に対する受け入れられた回答に触発されました doxygenタグとMSVC TODOタグを連携させる 。ただし、その回答では、FILE_VERSION_FILTER
ではなくINPUT_FILTER
構成オプションが使用されていました。後者(INPUT_FILTER
)が実際にはここでより適切だと思います。また、その回答で使用されているsed
コマンドは私には機能しません。