4
  1. 通常、私は Doxygen で文書化されたファイルのソース コードを表示できるようにしたいと考えています。でも、ソースコードの一部を隠してほしい。Doxygen に特定のコード (/cond /endcond など) を強制的にドキュメント化させないようにする方法は知っていますが、[このファイルのソース コードに移動] をクリックすると表示されます。

    私が実際に望んでいるのは、何かがDoxygenスタイルでコメントされていない場合、ドキュメントや「このファイルのソースコードに移動」内ではなく、どこにも表示されないことです。これは、関数だけでなく #-defines などにも当てはまります。

  2. @hideinitializer を使用して、#-defines の初期化子を非表示にします。それはドキュメント内でうまく機能します。しかし、ここでも、イニシャライザはソース コード内に表示されています。

誰か提案はありますか?

4

1 に答える 1

4

オプションでフィルタースクリプト/プログラムを指定することにより、ソースファイルを前処理することができINPUT_FILTERます。次に、 を設定するFILTER_SOURCE_FILE = YESと、元のソースではなく、フィルター処理されたソース コードがソース ブラウザーで使用されます。

ドキュメントから:

INPUT_FILTER タグを使用して、各入力ファイルをフィルタリングするために doxygen が呼び出すプログラムを指定できます。Doxygen は次のコマンドを (popen() 経由で) 実行することにより、フィルター プログラムを呼び出します。

<filter> <input-file>

ここで、 は INPUT_FILTER タグの値で、 は入力ファイルの名前です。Doxygen は、フィルタ プログラムが標準出力に書き出す出力を使用します。

FILTER_SOURCE_FILES タグが YES に設定されている場合、入力フィルタ ( INPUT_FILTER を使用して設定されている場合) は、ブラウズするソース ファイルを生成するために使用される入力ファイルをフィルタリングするためにも使用されます (つまり、SOURCE_BROWSER が YES に設定されている場合)。


大まかな例として、次のソースを使用します ( filter.pyDoxyfile と同じ場所に保存され、実行可能になります):

#!/usr/bin/env python
import fileinput, re

# output all lines that does not start with // (but allow //!)
for line in fileinput.input():
  if not re.match(r'\s*//(?![!])', line):
    print line,

Doxyfile では、次のように設定します。

INPUT_FILTER = ./filter.py
FILTER_SOURCE_FILE = YES

出力ソース ブラウザには、 で始まらない行のみが表示されるようになりました//

当然のことながら、doxygen に関連するものを除くすべての C スタイルのコメントを破棄するフィルター スクリプトを作成することは、上に示したものよりもはるかに複雑になります。

于 2013-01-16T15:01:55.920 に答える