Doxygen使い方覚書
何処かで書いたよなぁと思って日記を検索したら
出てこなかったので・・・
僕の使い方はHtmlをサーバーに置いていつでもアクセス・・・
というよりはコンパイル済みヘルプファイルにして
エディタから一発検索する為に使っている
Namazu等を入れても貧弱なサーバーでは時間が掛かってしまうので・・・
(※1.41で確認していますので最新のバージョンでは少し動作が違うかもしれません)
設定ファイルとコメントの書き方載せたら
やたら長くなったので省略します・・・
Doxygen用のコメントの書き方
C++用ですが・・・
- ファイルコメント
/***********************************************************************/ /*! @file test.h @date 2005/08/03 ファイル作成 @brief サンプルです ここからSubversionと共用のコメントになっています @author kennak $Revision: 1$ $LastChangedBy: kennak$ $LastChangedDate: 2005/08/03$ */ /***********************************************************************/
- 関数コメント
- 簡易記述
/***********************************************************************/ /*! 一行コメント(こうして置くと@briefを書いたのと同じになる) */ /***********************************************************************/
-
- 詳細記述
/***********************************************************************/ /*! @brief @param 引数(いくつでも可) @retval 返り値 @attention 注意事項 */ /***********************************************************************/
使い方
doxywizard.exeで一定の設定を行ってもいいのだけれど
それだけだとコンパイル済みヘルプファイルを作成できなくなってしまっている・・・
なので設定ファイルを弄る
とりあえず動かすのみなら下に設定ファイルがあるので
コメントが書いてあるところを適宜変更して使用してください
設定ファイル
LatexやRTF、XML等は使用していない為
コメントは書いていません
紛らわしい、よく使う所のみコメントを入れています
# Doxyfile 1.4.1 #設定説明ファイル #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- #プロジェクトネーム 最初のページに表示されます PROJECT_NAME = test #バージョン番号 できればバージョン管理システムに番号を入れさせたい PROJECT_NUMBER = 1.0 #出力先 OUTPUT_DIRECTORY = "C:/test" #ソースのディレクトリと出力先のディレクトリの同期か? CREATE_SUBDIRS = NO #生成言語 OUTPUT_LANGUAGE = Japanese #S-JISか? USE_WINDOWS_ENCODING = YES #ドキュメントの関数リスト等に簡易記述を置くか? BRIEF_MEMBER_DESC = YES #簡易記述を詳細ドキュメントの前にも置くか? REPEAT_BRIEF = YES ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ is \ provides \ specifies \ contains \ represents \ a \ an \ the ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = NO #FULL_PATH_NAMESがYESの時に省略するパス(ソースのトップフォルダまでは省略の対象?) STRIP_FROM_PATH = "C:/test" STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO DETAILS_AT_TOP = NO #コメントが無く、且つ継承されたメンバ、メソッドである場合は上位のコメントを継承するか? INHERIT_DOCS = YES DISTRIBUTE_GROUP_DOC = NO #ソースファイルを表示する場合のタブ数 TAB_SIZE = 4 ALIASES = #Cか? OPTIMIZE_OUTPUT_FOR_C = NO #JAVAか? OPTIMIZE_OUTPUT_JAVA = NO SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- #Doxygen用のコメントの無い場合でもドキュメントに含むか? EXTRACT_ALL = YES #プライベート関数、変数のドキュメントは表示するか? EXTRACT_PRIVATE = YES #静的関数、変数のドキュメントは表示するか? EXTRACT_STATIC = YES EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_METHODS = NO HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO HIDE_FRIEND_COMPOUNDS = NO HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = YES CASE_SENSE_NAMES = YES HIDE_SCOPE_NAMES = YES SHOW_INCLUDE_FILES = YES INLINE_INFO = YES SORT_MEMBER_DOCS = NO SORT_BRIEF_DOCS = NO SORT_BY_SCOPE_NAME = NO GENERATE_TODOLIST = YES GENERATE_TESTLIST = NO GENERATE_BUGLIST = NO GENERATE_DEPRECATEDLIST= YES ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = NO SHOW_DIRECTORIES = YES FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- #コマンドライン上には何も吐かない(実行は早くなるが・・・) QUIET = NO #警告を吐くか WARNINGS = YESWARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = test.log #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- #入力ファイルパス INPUT = "C:/test" #ドキュメント化するファイルパターン FILE_PATTERNS = *.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.java \ *.ii \ *.ixx \ *.ipp \ *.i++ \ *.inl \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ \ *.idl \ *.odl \ *.cs \ *.php \ *.php3 \ *.inc \ *.m \ *.mm \ *.dox #指定されたフォルダ以降のフォルダもスキャンするか? RECURSIVE = YES #無視するパス EXCLUDE = EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = EXAMPLE_PATH = EXAMPLE_PATTERNS = * EXAMPLE_RECURSIVE = NO IMAGE_PATH = INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- #ドキュメントにソースを含むか? SOURCE_BROWSER = YES INLINE_SOURCES = NO #Doxygen用コメントを含んだソースから抜くか? STRIP_CODE_COMMENTS = YES REFERENCED_BY_RELATION = NO REFERENCES_RELATION = NO VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = YES COLS_IN_ALPHA_INDEX = 5 IGNORE_PREFIX = C #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = html HTML_FILE_EXTENSION = .html HTML_HEADER = HTML_FOOTER = HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES #コンパイル済みHTMLを吐くか? GENERATE_HTMLHELP = YES #ファイル名 CHM_FILE = "test.chm" #hhcファイルの場所(なぜか.exeまで含めなくてはエラーになる) HHC_LOCATION = "C:\test\hhc.exe" GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 GENERATE_TREEVIEW = NO TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO LATEX_OUTPUT = latex LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex COMPACT_LATEX = NO PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = PDF_HYPERLINKS = NO USE_PDFLATEX = NO LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO RTF_OUTPUT = rtf COMPACT_RTF = NO RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = NO MAN_OUTPUT = man MAN_EXTENSION = .3 MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = xml XML_SCHEMA = XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- #Doxygenでクラス図を生成するか? CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = YES #Dotツールを使うか? HAVE_DOT = YES #Dotツールを使う場合はYES(CLASS_DIAGRAMSは無視されます) CLASS_GRAPH = YES COLLABORATION_GRAPH = YES GROUP_GRAPHS = YES #見た目UMLにするか?(関数やらが図に無理やり入って冗長に・・・orz) UML_LOOK = NO TEMPLATE_RELATIONS = NO #インクルードされているファイルの相関図もグラフにするか? INCLUDE_GRAPH = YES #各ヘッダファイルに対してインクルード相関図を生成するか? INCLUDED_BY_GRAPH = YES CALL_GRAPH = NO GRAPHICAL_HIERARCHY = YES #ディレクトリ構造をグラフにするか? DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png #グラフ生成ツールGraphvizのパス(こっちは.exeまで含めるとエラーになる) DOT_PATH = "C:\test\Graphviz\bin" DOTFILE_DIRS = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 MAX_DOT_GRAPH_DEPTH = 1000 DOT_TRANSPARENT = NO DOT_MULTI_TARGETS = NO #グラフの意味を示す、判例ページを生成するか? GENERATE_LEGEND = YES #Dotツールが生成するゴミファイルを削除するか? DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO
エディタから一発検索する為のマクロ(VBライク)
exe$はコンパイル済みヘルプファイルのフルパス
dllname "hhctrl.ocx" cdeclare HWND HtmlHelp(HWND,LPCSTR,long,long); sub FindWordFromCHM(exe$) dim ak as HH_AKLINK dim h as long dim k$ dim com$ dim notype k$ = GetText() ak.cbStruct = 4*8 ak.fReserved = 0 ak.pszKeywords = varptr(k$) ak.pszUrl = 0 ak.pszMsgText = 0 ak.pszMsgTitle = 0 ak.pszWindow = 0 ak.fIndexOnFail= 1 h = HtmlHelp( 0, exe$, HH_ALINK_LOOKUP, varptr(ak) ) h = HtmlHelp( 0, exe$, HH_KEYWORD_LOOKUP, varptr(ak) ) end sub
このマクロをF1等に設定しておけば
Visual Studioや秀丸、QXエディタで一発検索ができます