28

Doxygenのインスタンスをインストールしてセットアップしましたが、箱から出して、次のようなブロックでマークされている場合にのみ、コード内のTODOタグが見つかります。

/**
 * @todo Foo
 */

見つからないようです:

// TODO Foo
// FIXME Bar
// @todo Baz

解析を処理するほとんどのIDEとバグトラッカーは問題ありませんが、Doxygenを構成してそれらを検索し、ToDoアイテムとしてリストする簡単な方法はありますか?

4

1 に答える 1

45

使用できる例と方法はいくつかあります。

  • 有効なdoxygenコマンド(例\todo)を含む1行のコメントの場合、

    /// \todo Some (optional) text
    

    通常の2つではなく、3つのスラッシュに注意してください。doxygenドキュメントの特別なドキュメントブロックセクションの2番目のリストのポイント3を参照してください。これを使用して、新しいToDoアイテムをソースコードに追加できます。

  • FIXME一般に、Doxygen構成ファイルでエイリアスを定義することにより、カスタムタグ(など)を定義できます。例えば

    ALIASES += FIXME="\todo"
    

    これにより\FIXME、ソースコードを記述できるようになり、接頭辞が付いたコメント\FIXMEは、最終的なドキュメントのToDoリストに含まれます。ここでの問題は、エイリアスの前に\(または@)記号を付け、コメントの先頭に3つのスラッシュを付ける必要があることです。これFIXMEは、コード内のsをそのままにしておきたい場合は、オプションではありません。

  • 最後に、別の方法、そしてあなたが探していると思うのは、INPUT_FILTER構成ファイルオプションを使用してソースファイルを前処理することです。このオプションは、doxygenがドキュメントを作成する前に各ソースファイルに適用されるコマンドを定義するため、有効なdoxygenマークアップのインスタンスTODOを置き換えるコマンドを定義できます。FIXME

     INPUT_FILTER = "sed -e 's/\/\/.*FIXME/\/\/\/ \\todo/'"
    

    このフィルターは、(との間に任意の量の空白がある(またはない))のすべてのインスタンスを。に// FIXME置き換えます。この置換は、doxygenによってのみ内部的に行われます。ソースファイルはディスク上で変更されません。//FIXME/// \todo

注:この最後のポイントは、 doxygenタグとMSVCTODOタグを連携させるという質問に対する受け入れられた回答に触発されました。ただし、その回答では、FILE_VERSION_FILTERではなく構成オプションを使用していましたINPUT_FILTERINPUT_FILTER後者( )が実際にはここでより適切だと思います。また、sedその回答で使用されているコマンドは私には機能しません。

于 2012-01-04T11:44:58.313 に答える