【コメント】doxygen【コンソメ】 at TECH
[2ch|▼Menu]
[1からを表示]
50:デフォルトの名無しさん
08/07/13 02:15:19 .net
>>48
vbfilter.py は、空行を捨ててしまうんですが、
cTest のドキュメントブロックと fncTest のドキュメントブロックがくっついててもいいんでしたっけ?
私も自信ないので…
自分で使う分は空行を通すようにしたりとか、色々と手を加えて使ってます。

なお、 vbfilter.py の説明に、クラスの説明用のコメントは「'*」じゃなくて「'!」で始めるとあります。

それと、doxygen のマニュアルに書いてますが、説明する対象の直前に置くなら、 @fn コマンドはいりませんよ。

51:50
08/07/13 02:33:51 .net
>>48
もうひとつ思い出した。

vbfilter.py は分割行には対応してないので、
実際の fncTest の1行目の宣言が複数の行に分割されてたら認識してくれません。

52:デフォルトの名無しさん
08/07/14 04:02:29 .net
>>50
ありがとうございます!
おかげで正常に出力できました。
ちなみに、関数の前に@fnをつけないとやはり出力されませんでした。
仕方なくつけることにします。

'*@class cTest
'!@brief テストクラス
'!@author me
'!@version 1.0

'*@fn fncTest(obj as Variant)
'*@brief 関数の説明1
Public Function fncTest(obj as Variant) As Variant
fncTest = Nullpo
End Function

'*@fn fncTest2(obj as Variant)
'*@brief 関数の説明2
Public Function fncTest2(obj as Variant) As Variant
fncTest2 = obj.Nullpo
End Function


53:50
08/07/14 20:30:08 .net
クラス名は、ファイル名やフォーム名から vbfilter.py が勝手に付けるので、
@class コマンドもいりませんよ。

@fn コマンドをつけないと出力されないのは、
1行目の @class コマンドの行頭が「'*」になっているために、
fncTest のドキュメントブロックとくっついてしまって
おかしな事になっているのではないでしょうか。

「'*」で始まる行と「'!」で始まる行は違うタイミングで処理されます。
最初に「'!」で始まる行が検出されて、クラス用のドキュメントブロックが出力され、
対応するc++形式のクラス定義が開始されます。
次にファイルの先頭から1行ずつパターンマッチングされて、
関数の1行目や変数定義や「'*」で始まるコメントがc++の書式に変換されます。
この段階では「'!」で始まる行は飛ばされます。
最後に「}」が出力されて、最初のクラス定義が閉じられます。

なお、関数の中身は全部捨てられてます。
中身の変換の機能追加も一時考えたんですが、挫折しました……。

54:デフォルトの名無しさん
08/08/01 22:14:18 .net
ツリー部分の日本語が文字化けしてしまうんですが、どうやったら解決できるでしょう?
今のところ手動で変更してますが、Doxygenの設定でどうにかしたいです。

55:デフォルトの名無しさん
08/08/01 23:03:48 .net
doxygenのバージョンと動かしているOS、食わせているファイルのエンコードとDoxyfileの設定などの情報をどうぞ。
私のところでは文字化けしていないので。
# 尤も、日本語のファイル名なんて使ってないからファイル名が化けない保証はないが。

56:デフォルトの名無しさん
08/08/02 01:33:38 .net
>>54
バージョン1.5.6 なら、Doxygen自体のバグっぽいです。
公式のバグレポートには、ポーランドの人からも
ポーランド語特有の文字が化けると報告されてます。

1.5.5と1.5.6でツリービューの処理が変わってるので、
そこでエンコーディングの処理をミスしたまま、
作者様はラテン1な国の人なので気付いてないってとこではないかと。

57:デフォルトの名無しさん
08/08/02 08:56:42 .net
>>54
1.5.5を使う


58:55
08/08/02 09:09:18 .net
お、私が使っているのはCygwinのインストーラで入れた1.5.5だ。

59:デフォルトの名無しさん
08/08/02 09:13:10 .net
>>56
thx! (54じゃないけど)

60:54
08/08/05 21:35:07 .net
ありがとうございます!バージョンの違いってのは気づきませんでした・・・・
これでキー一つでビルド&ビルド後処理ができるようになりました。

61:デフォルトの名無しさん
08/08/26 16:11:52 .net
今までdoxygenの事を全く考えずにC++で開発していたんですが、
突然思い立ってdoxygenで出力することにしました。
当然、対応形式のコメントでないので一切出力されません。
一から書き直そうと思うんですが、せめてソースを静的に解析して
関数やファイルの頭に定型のテンプレートを追記してくれるようなツールがあればと
探してるんですが、何かないですかね?

62:デフォルトの名無しさん
08/08/26 16:27:23 .net
>>61
そんなことしなくても、コメントの付いてない関数も含めて無理矢理出力させるオプションがあったはず。
DoxyfileのEXTRACT_ALLの項目をNOからYESに変えてみたら?

63:61
08/08/26 18:34:24 .net
はい。その設定で関数は出るんですが、クラスとメンバが
何をしているかの簡単な説明も表示したいと思っています。
既に大量のソースが存在する為、少しでも手間をかけずに実現したいと試行錯誤中です。
自分の様にプロジェクトの途中からdoxygenの使用を考える人間が、
どのようにこの問題を解決しているのか知りたいところです。

64:デフォルトの名無しさん
08/08/26 18:39:07 .net
努力と根性じゃね?

65:デフォルトの名無しさん
08/08/26 19:53:17 .net
>>63
とりあえず、説明文を付けるのは名前だけで中身を判断できないようなクラスやメンバだけに限定しようぜ。

66:61
08/08/26 23:15:44 .net
>>64 >>65
先ほどgccxmlを使用して自宅の環境で関数の位置と引数の情報を取得することができました。
ここからコメントを挿入していけばよさそうです。
お二人はdoxygen以外に勉強しなきゃいけないことがあるように思いますよ。
本当にありがとうございました。

67:65
08/08/26 23:33:51 .net
>>66
四行目が蛇足すぐるwww
でもまあ、健闘を祈る。
あと、無理するなよ。形だけのドキュメント作業なら特に。

68:61
08/08/26 23:56:08 .net
>>67
大丈夫ですよ、あなたみたいにひ弱じゃありませんから。

69:61
08/08/27 00:18:56 .net
名無しに戻ろうと思ったのですが偽者が湧いたので。
>>66は私本人ですが、>>68はどこぞの馬の骨です。

>>67
ありがとうございます。
"努力と根性"という言葉に何故かカチンときてしまい棘のある文章になってしまいました。
プログラマやその上司が気軽に使っていい言葉ではないと考えます。
たかが2chの戯言なのに、と自分でも驚いていますが。
ドキュメントはネット上で一般公開予定なので、なるべく解りやすいものを心がけます。

これ以降、私が>>61で書き込むことはありません。
書き込みがあったとしたら、それは私以外の誰かです。

70:61
08/08/27 00:21:13 .net
いいえ、>69こそがどこぞの馬の骨です。
そもそも、まともな神経をしていたらレスをつけてくれた人に馬の骨なんて使うわけないじゃないですか。

71:65
08/08/27 00:41:27 .net
ワロタw

72:デフォルトの名無しさん
08/09/13 10:38:25 .net
>>61もその程度で躓くレベルでしかもきもいときた

73:デフォルトの名無しさん
08/09/25 11:13:21 .net
word出力したら途中までしかクラスが出てこないのは何故?

74:デフォルトの名無しさん
08/09/25 12:25:23 .net
>>73
htmlでも出ない?
なんか変な記述があるとそれ以降が出ないことがあった。なんだかは忘れた。

75:デフォルトの名無しさん
08/09/25 13:04:40 .net
>>74
htmlだと全部出てるだけど、途切れてる部分見直してみる
ありがと

76:73
08/09/25 13:26:05 .net
>>74
確認してみたけど、特に変な記述は見当たらなかった
でも、たまに出力先のwordでカタカナ部分が文字化けしているとこがあった
OUTPUT_LANGUAGEがJapaneseだと全く表示されず、Japanese-enだと途中まで表示されて
今Englishに変えたら文字化けだらけだけど全部出てきた

INPUTもOUTPUTもcp932でしてるんだけど、どうすりゃ文字化けせずに日本語だせるかな…

77:73
08/09/26 15:47:20 .net
追加報告です。
doxygenのVer1.54使っていましたが、1.47でword出力すると問題なくできました
ご迷惑おかけしました

78:デフォルトの名無しさん
08/09/27 08:34:51 .net
doxyはバージョンあげると劣化することもあるからなあ
最新版のツリー表示の日本語化け直らないかなあ


79:デフォルトの名無しさん
08/10/03 00:09:52 .net
1.5.7 age

80:デフォルトの名無しさん
08/10/09 12:07:46 .net
v1.5.7.1 age

81:デフォルトの名無しさん
08/10/12 12:08:52 .net
>>78
1.5.6でchm形式でインデックスのエンコーディングを選べるようになって文字化けが解消されたから、それで我慢すれ

82:デフォルトの名無しさん
08/10/21 20:34:18 .net
C言語の構造体で、gccのattributeがメンバ「関数」扱いされてしまう
これどうにかならないかな?
OPTIMIZE_OUTPUT_FOR_CはYESになってる

struct Foo
{
    int Bar __attribute__((aligned(32)));

83:デフォルトの名無しさん
08/10/21 22:37:43 .net
>>82
Cにない構文は、INPUT_FILTERにsedかなにかのスクリプトを指定して事前に取り除くしか。

84:デフォルトの名無しさん
08/10/22 01:29:05 .net
>>82 URLリンク(www.google.co.jp)

85:82
08/10/22 10:40:25 .net
>83-84
ありがとう、ただそれだとattributeが消えちゃうよね
なんとか残したまま正しく動作させたいんですよ

86:デフォルトの名無しさん
08/10/22 12:17:14 .net
1.5.x で enum EnumName に対して @relatesalso StructName を書くと StructName のページに
EnumName が出るようになるのですが、enum のメンバーのリストが表示されなってしまいました。
1.4.x ではできていた記憶があるのですが、1.5.x で正常にする方法はあるでしょうか?

OPTIMIZE_OUTPUT_FOR_C は YES です。

87:デフォルトの名無しさん
08/10/22 12:57:19 .net
>>85 情報後出しキター

88:デフォルトの名無しさん
08/10/22 13:22:05 .net
>>85
あんたの言う正しい動作って何なの?

89:デフォルトの名無しさん
08/10/24 09:34:27 .net
正しく=attributeを残したまま、メンバ変数はメンバ変数として認識だろjk

90:デフォルトの名無しさん
08/10/24 09:39:03 .net
正しくって……
そんな拡張に一一対応しろってのか?
ソースあるんだろうから自分でやれよと思うのだが。

91:デフォルトの名無しさん
08/10/24 10:10:38 .net
いちいちソース書き換えとかコスト見合わないでしょ
だからそれ以外でなんとかする方法を探してるんじゃないか?

まあattributeは確かに独自拡張だが、gccだし割とよく使われてるんで対応してても良いと思う

92:デフォルトの名無しさん
08/10/24 10:15:31 .net
汎用的に
構文解析時だけ指定キーワードを無視するオプションがあればいい
つか、ないのかな?

93:デフォルトの名無しさん
08/10/24 18:10:58 .net
>>91
あなた流に言うと、コストに見合わないので対応しません

94:デフォルトの名無しさん
08/10/25 00:44:08 .net
作者かよww

95:デフォルトの名無しさん
08/10/25 17:40:51 .net
そもそもC言語にメンバ関数は無いんだからdoxygenのバグとも言えるだろ
想定外の構文には警告なりエラーなり出して欲しいよな

96:デフォルトの名無しさん
08/10/26 00:08:33 .net
例えば@paramとかって変えられないの?

97:デフォルトの名無しさん
08/11/08 17:25:21 .net
mac osx 10.5.5
doxygen 1.5.7.1

で実行しようとすると、Failed to run doxygen と言われて一切実行できません。
対処法知っている方、教えて下さい。

98:デフォルトの名無しさん
08/11/19 23:51:11 .net
クラス関連図って作れますか?
1クラスの構造を図にはできるみたいですが・・・
C++です。

99:デフォルトの名無しさん
08/11/20 00:02:36 .net
graphvizがあればできるよ。

100:デフォルトの名無しさん
08/12/17 20:18:15 .net
@dateの後ろに付ける日付をsubversionが自動更新してくれるように
$Date$にしたら、出来たhtmlで日付の見出しが2重になってました。
もしかしてバージョン管理システムのキーワードをdoxygenが認識して
適当に見出し付きで整形してくれるんでしょうか。
マニュアルにそれらしい説明を見た覚え無いんですが。

101:デフォルトの名無しさん
08/12/21 21:45:55 .net
公式とかで、きちんとした例が*.hしかないと思うのは気のせい?

102:デフォルトの名無しさん
08/12/23 01:27:13 .net
ちょっとメモ。
doxygenで出力したRTFがどうも文字化けするので調べてみたら、\\'を\\\'に変換することで解消することが判った。
要は\を表すのにそれ自身をエスケープして\\とする必要があると言うことなのだろうか。もうちょい調べる必要はありそう。

103:デフォルトの名無しさん
08/12/27 23:00:37 .net
日本語がうまく通らない原因ってどこにあるの?

104:デフォルトの名無しさん
08/12/28 00:28:11 .net
>>100
doxygenは$date$を認識するみたいだね。だから@dateは書かなくていい


105:デフォルトの名無しさん
08/12/28 04:51:23 .net
Doxygen 1.5.8 age

106:デフォルトの名無しさん
08/12/28 05:06:03 .net
アップデートコネーから自分で作るか…

107:デフォルトの名無しさん
08/12/28 09:17:52 .net
>>101
ヘッダーに書けば十分だからじゃないかな。

でも、詳細をヘッダーに長々と書いてヘッダーが読みにくくなりそうなときは、詳細だけcppに分けて書くことはあるよ。それでもdoxygenはちゃんとまとめてくれる


108:101
08/12/28 15:47:03 .net
>>107 thx

十分かとも思えてきた。
概要かけばいいんだもんな。
漏れは最近doxygen向けのコメント付けはじめたからもうちょい使って慣れてみるわ

109:デフォルトの名無しさん
08/12/28 19:40:09 .net
>>103
Shift-JISコードの2バイト目に\を割り当てたマイクロソフトに原因がある。


110:102
08/12/29 14:53:28 .net
更に追加。他にも、エスケープすべき文字をエスケープしていない箇所を発見。
xyzzyの場合の正規表現置換でこれを行なうとかなり改善する。
(query-replace-regexp "\\(\\\\'..\\)\\([{}][^
][^t]\\)" "\\1\\\\\\2")
# 場当たり的だなぁ……

111:102
08/12/29 14:56:31 .net
あー、済まない、補足。

文字列中に出てくる「{」も「}」も、どちらもエスケープしなければならないと言うのが>110の対応。
但し、文字列中かどうかの判断を厳密に行ないたくないので手元のファイルで場当たり的に対応してある。

誰か、ソース拾ってきて対策してくれる奇特な人はいないもんかのぉ。

112:デフォルトの名無しさん
08/12/29 16:04:40 .net
>>111
文字列として表示されるべき「{」や「}」がエスケープされてないってこと?

いつもHTMLしか出してなかったんだけど、試しに手元にあるソースでRTF出してみたら、
こちらではリストをネストさせてるところで、上の階層の行末の書式文字の「{」が
普通の文字として扱われたりして、「{」と「}」の対応が崩れてエラーになってるっぽいです。
(いや、ネストされて表示はされてるから、書式文字以外に余分に「{」が付いてる?)

行末が特定の文字(「定」とか「得」とか)の場合になるみたいだけど、
条件がよくわかりません…

113:102
08/12/29 16:16:27 .net
>>112
2バイト文字の2バイト目に{}\のいずれかが来るケースで、エスケープされないようです。
# 「定」「得」どちらも該当しないようですが……

処が文字列を明示的に区切らないのがRTFの仕様らしくて、キーワードとしての{や}と区別が難しいのですよ。
実は>102の対策だけだと{}の対応が崩れてしまってrtfの一部だけしか読み込まれないことが判って気づいたんですが。
# 客先に実態の1/3程度しか分量がない資料を提出しちゃったのは内緒w

念のため確認したら、手元のDoxygenはCygwin同梱の1.5.5でした。
# さて、rtfを変換するツールを真面目に作るのとdoxygenそのものを修正するのとどっちが楽だろかw

114:デフォルトの名無しさん
08/12/29 16:26:38 .net
>>113
だいぶ前からエンコーディング指定して全部一旦 UTF-8 に変換されるようになったから
その手の問題は解決済みだと思ってるんだけど、何かバージョン上げれない理由でもあるの?

115:デフォルトの名無しさん
08/12/29 17:54:50 .net
cygwinの最新は1.5.5-1だね。
つまり、解決済みではないらしい。

116:デフォルトの名無しさん
08/12/29 18:19:03 .net
cygwinは使ってないので、それが理由かどうかは知りませんが、
1.5.6から1.5.7.1まではフレーム付きHTMLのツリービューで
英数字以外が文字化けするという問題がありました。
2日前に出たばかりの1.5.8でやっと解決されました。

117:デフォルトの名無しさん
08/12/29 19:13:27 .net
>>115
Windows ネイティブ版を使えない理由があるの?

118:デフォルトの名無しさん
08/12/29 20:15:40 .net
全部一旦 UTF-8 に変換されるようになったのは、1.5.2以降だから、
>>113, >>115 の cygwin版も UTF-8 に変換されるバージョンです。

最新版でも日本語RTFはかなり駄目な感じです。
手元のソースを処理させてみたら、目次の見出しの「目次」の後ろとか、
あちらこちらに見えてはいけない「\par」や「{」が見えて、
本文数ページで破綻します。

119:デフォルトの名無しさん
08/12/29 20:53:32 .net
HTML だと問題ないってことかな? HTML しか使ってないからよくわかんないや。

120:118
08/12/29 22:31:08 .net
昔、1.4.6でRTFを作ったことのあるソースを、設定をほとんど変えずに1.5.8に掛けても駄目でした。
1.4.6で作ったRTFの半分ぐらいしかファイルサイズがありません。
むしろ内部処理が UTF-8 になってから、おかしくなったんじゃないかという気がしてきました。

121:デフォルトの名無しさん
08/12/29 23:06:51 .net
折角色々対応してあったのを、UTF-8にしたのを機に捨ててしまったような感じだな。
この正月休みの間に暇があるようならソースでも見てみるか。

122:デフォルトの名無しさん
08/12/30 01:23:34 .net
過去のバージョンを取ってきて順に試してみました。
1.5.0までは日本語の RTF が生成できて
(おかしなところが無いかまではチェックしてませんが)、
1.5.1で、
"Warning: Output language Japanese not supported! Using English instead."
と表示され、日本語が表示できませんでした。
ここで一旦無かったことにされたようです。

123:デフォルトの名無しさん
08/12/30 03:40:46 .net
問題分かったかも。

id 437346 のバグレポートで日本語対応の議論がされてるんだけど、
報告者の人が提案した、
x080より大きいバイトが来たらマルチバイト判別フラグON、
次のバイトでフラグOFF、というのをそのまま採用してくれたらよかったのに、
0x80より大きいかの判断をそのままフラグに入れちゃってるから、
2バイト目が0x80より大きい場合に、その次のバイトまでエスケープされて、
それがエスケープされたら困るものの場合に不幸になってるということかと。

124:デフォルトの名無しさん
08/12/30 03:58:34 .net
repopかければいいのに。

rtfって何で読めるんだろう。AbiWord?ooo?

125:デフォルトの名無しさん
08/12/30 08:55:13 .net
>>123
事はそう単純じゃない。というか、もっと単純。
内部UTF-8をcp932に変換して、必要ならエスケープすべきなのにそれをしていないと言うのが>102=113の観測だろ。
例えば「ソソ」が「\'83\\\'83\\」にならないといけないのに「\'83\\'83\」になると。

それとも、二種類の問題が独立して存在しているのか?

126:123
08/12/30 10:22:07 .net
>>125
ああ、すいません。
>>123で書いたのは、1.5.8の場合の問題です。
>>102,,>>113の、.1.5.5の問題はエスケープされてないというので合ってると思います。
1.5.8でそれに対する対応が入れられたけど、方法がまずく、
今度は逆にエスケープすべきでないところまでされたという話。

127:デフォルトの名無しさん
08/12/30 11:17:38 .net
>>78
1.5.8で直った

128:デフォルトの名無しさん
09/01/08 07:49:37 .net
とりあえず保守ですが、あけおめ。

日本語rtf使えるようになるといいですね

自分はまだ皆様のようにハックに参加できるほど技術がないので、精進したいと思います。

129:102
09/01/08 09:55:41 .net
又更につまらない問題に遭遇。
折角修正したrtfがWordだと読めるのにOpenOfficeだと文字化けする。
例えば、「\'83\\」のような>125が指摘した例だと、「\'83\'5c」のようにしないといけないらしい。
あーもう、rtfを解析するしかないのかなぁ。
# doxygen1.5.8で変わっているらしいからそっちに手を出すのは避けたいし。

130:デフォルトの名無しさん
09/01/08 22:19:22 .net
解決しました。ありがとうございました。

131:デフォルトの名無しさん
09/01/10 14:59:07 .net
1.5.8 のrtfのエスケープバグのソースって
どのファイルなのかな?

132:102
09/01/10 15:17:25 .net
ちょっとLinuxに1.5.8をインストールしたので出力してみたが、これは酷いw
2バイト文字を全てコード出力しているのはいいが、>123のように無関係なコマンド文字まで巻き添えにしてしまっている。
おまけに、コマンド文字列を何故か\commentで括ってしまっているので収拾がつかない状態。

そうそう、html出力のツリービューも、(UTF-8)指定なのにも関わらずプロジェクト名がEUCで出力されるので化け化け。
誰かなんとかして〜w
# ってことで、>131に期待♪

133:デフォルトの名無しさん
09/01/11 01:06:49 .net
うはw ぼくとしては>102さんに期待してるんだけどっw

134:デフォルトの名無しさん
09/01/12 00:56:25 .net
>>131
rtfgen.cpp の void RTFGenerator::postProcess(QByteArray &a) です。
こちらを参考に。
URLリンク(bugzilla.gnome.org)

>>132
そういや最近プロジェクト名を日本語にしてなかったけど、これは…

どうやらDoxywizardのバグのようです。
テキストエディタでDoxyfile開いてプロジェクト名を修正して、
コマンドラインでDoxygenを実行したら、文字化けしませんでした。

135:デフォルトの名無しさん
09/01/12 02:36:31 .net
>>134 ソース位置ありがとう。
これって、よくわかってないけど、postProcess()で、ファイル全体を
エスケープしてるのかな。
もしそうなら、rtfでの表示される文字列以外も全部エスケープされて
しまい、上のバグが症状がでてるんじゃないかな?
rtf表示文字列だけをエスケープするようにするには、postProcess()
の中でやってちゃだめで、rtfgen.cpp(にあるか知らないけど)
で表示文字列をrtfタグ中に埋め込む時コード当たりでやらないといけなそう?

とりあえず、doxygenをWindowsでコンパイル出来る環境作り
からやらないといけないのが辛いorz


136:デフォルトの名無しさん
09/01/12 08:13:44 .net
>>135
頑張れw
Cygwinなら協力する。
# つーか、ソース拾ってきて自分でやれ>自分

137:134
09/01/12 21:40:12 .net
>>135
0x80より大きい値とmb_flagが1のときだけエスケープされるはずです。
1.5.7.1以前のバージョンではmb_flagが無くて、0x80より大きい値という条件しかなかったので、
マルチバイト文字の2バイト目が「{」や「\」などの場合におかしくなってました。

mb_flagをマルチバイト文字の1バイト目で1にすれば、
次のバイトが0x80以下でもエスケープされるという仕組みのはずですが、
mb_flagの設定方法がまずくて、2バイト目でクリアされなくて
さらに次のバイトまでエスケープされる場合がある、という状況です。

URLリンク(bugzilla.gnome.org)
で、T.Matsuyama氏が提示したコードが正しく動くはずです。

#そこまで分かってるな自分でやれ、と言われそうだ……
すいません、環境作りが荷が重いですorz

138:デフォルトの名無しさん
09/01/14 22:11:56 .net
バグ修正版バイナリ出来たよん。
URLリンク(www1.axfc.net)
T.Matsuyama氏パッチそのままです。
ばっちりっぽいです。
102さん、134さんありがとw

139:デフォルトの名無しさん
09/01/14 22:17:06 .net
おー、これは凄い。後で試してみるか。

140:デフォルトの名無しさん
09/01/27 01:28:30 .net
てか、>>137のURLが示すバグをreopenして開発者に教えてあげればいいんじゃないの?
アカウント持ってないから誰でもreopenできる設定なのかはわからないけど

141:デフォルトの名無しさん
09/01/27 07:49:20 .net
いかん、未だ試せてない……

142:デフォルトの名無しさん
09/01/30 01:55:55 .net
コメントが一切ついてないソースに
関数の定義部分だけ自動的に
タグを生成してくれるツールないですか?

143:デフォルトの名無しさん
09/01/30 02:14:58 .net
>>142 ctags?

144:デフォルトの名無しさん
09/01/30 07:39:05 .net
>>142
このスレ的には、タグというとDoxyfileのタグのことになるのだがそれでいいのかい?

145:デフォルトの名無しさん
09/01/30 07:42:20 .net
@が付くやつがいい

146:デフォルトの名無しさん
09/01/30 08:23:53 .net
ドキュメントつけしてない関数も出力するオプション?

147:139
09/02/15 17:55:27 .net
やっと>138を試せた。取り敢えず、cygwinからでも使えることと日本語が化けないことは確認した。
但し、OpenOffice(3.0)では{comment[^{}]}を取り除く必要があったこととTITLEなどのフィールドは
巧く変換できなかったけれど、これは元からそうなのかもしれない。
今度機会があれば、素直にMSwordに食わせてみるとしよう。

148:139
09/02/17 18:58:43 .net
cygwinで>138を動かし、できたRTFをWORD2000に食わせた。
全選択してフィールドの更新、画像アンリンクのマクロを動かして、
docに名前を変えて保存。一応、スタンダロンで使える資料になるようだ。

で、画像アンリンクのマクロって需要あるかな。あるようならどっかで公開するけど。

149:デフォルトの名無しさん
09/02/28 05:29:11 .net
doxygenのライセンスってGPLですよね。
doxygenのコメントを書いたソースって公開しないと駄目ですか?

150:デフォルトの名無しさん
09/02/28 05:39:00 .net
ならないよ
GPLのお絵かきソフトで絵を描いたようなもん

151:149
09/02/28 05:50:38 .net
>>150
ありがとうございます

152:デフォルトの名無しさん
09/03/03 10:33:16 .net
DoxyfileもGPLに該当しないのかな。
それとも、コメント部分は削除しておいた方が無難?

153:デフォルトの名無しさん
09/03/03 22:08:28 .net
ソフトのドキュメントを作るのにDoxygenを利用してもGPLにする必要なし。
ソフトの機能としてDoxygenを利用する場合はGPL。

154:デフォルトの名無しさん
09/04/06 21:16:11 .net
@a と @p ってどう使い分けてる?
どっちも文中の引数のフォントを変えるために使うものみたいだけど。

155:デフォルトの名無しさん
09/04/08 12:32:53 .net
\aは「特殊なフォント」ということで一般的にはItalicかな。
\pは\cと等価で「タイプライタフォント」ということで等幅フォントが使われる。
後は、実際の出力を見て検討したら?

156:154
09/04/09 00:04:14 .net
普通はどうする、ということは特になくて、見た目の好みで使えばいいのですか。
ヘルプを見ると、@aは "refer to member arguments" 、
@pは "refer to member function parameters" と書かれてて、
微妙に使い分けがあるようなないような、よく分からなかったもので。

157:デフォルトの名無しさん
09/04/09 07:14:32 .net
意味で使い分ければいいと思う。
フォントとかの体裁はCSSで変えられるんじゃなかったかな?やったこと無いけど。

158:デフォルトの名無しさん
09/04/09 08:11:53 .net
@a の argument が実引数で @p の parameter が仮引数なわけだけど、
コメント中では仮引数しか現れない気がする。実引数が現れることなんてあるか?

159:デフォルトの名無しさん
09/04/09 09:06:56 .net
恣意的に使い分ければいいんじゃね?

>>157
出力するものによって指定するスタイルシートや指定方法は違うけど、htmlならcss,だね。
やったことないけどw

160:デフォルトの名無しさん
09/04/10 04:10:58 .net
member argumentがクラスのメンバー変数ってことはないかな。

161:デフォルトの名無しさん
09/04/10 23:50:56 .net
>>158
@p param1 の値が @a xxx だったら〜
みたいな説明を書くのに使うとか?

162:デフォルトの名無しさん
09/04/25 21:37:10 .net
メソッドのコメントは、戻り値がなくても「@return なし」と明示的に書くべきでしょうか?
引数がない場合も同様に「@param なし」と書くでしょうか?

163:デフォルトの名無しさん
09/04/25 21:38:20 .net
前者はお好きにどうぞ。
後者は「なし」なんて引き数はないぞって警告が出るんじゃないかな?

164:162
09/04/25 21:45:11 .net
>>163
レスありがとうございました。
確認したら「@param なし」ではwarning argumentと出ましたのでこれは書かないようにします。

165:デフォルトの名無しさん
09/04/30 13:43:57 .net
今の大会は、開発環境の違いによる面白さもあると思う。
共通スペックでやるなら別に大会をおこせばよいと思う。

166:デフォルトの名無しさん
09/04/30 13:45:15 .net
>>165
誤爆しました。すみません。

167:デフォルトの名無しさん
09/04/30 23:56:10 .net
Doxygen 1.5.9 age

168:デフォルトの名無しさん
09/05/01 00:16:08 .net
さっきまでは1.5.8だったのに。早速試すぜ。

169:デフォルトの名無しさん
09/05/12 10:55:11 .net
ソースの先頭のコメントの 理想的なサンプル を教えて。
言語は問わないけど、出来ればCで。

170:デフォルトの名無しさん
09/05/12 18:22:26 .net
理想的かどうか知らんが、私の典型。
--
////////////////////////////////////////////////////////////////
/// \file foo.c
/// \brief あーたらこーたら
///
/// あーたらこーたらをあーたらこーたらするとかなんとか。
/// \date 2009/3-4
/// \author bar\@site
/// \attention なんだかんだ
/// \version hage.hige.hoge
//
--

171:デフォルトの名無しさん
09/05/13 04:06:28 .net
>>169
とりあえず最小限はこうだろ。 JAVADOC_AUTO_BRIEF オンで。

/** @file
* 簡単な説明.
* 詳細な説明
*/

170 のやつだと、ファイル名はどうせ名前変更したときに更新し忘れるし、
日付や作者やバージョンはバージョン管理ソフトに任せればいい。
詳細な説明も attention も必要に応じて、だな。とにかく書かないで済むものは
書かないのが一番。

172:デフォルトの名無しさん
09/05/13 09:19:41 .net
>>170
ありがとうございます。

>>171
そのバージョン管理ソフトに書かせるので心配ゴム用です。

173:デフォルトの名無しさん
09/05/13 16:20:47 .net
表書くのってtableタグ使うしかないんでしたっけ?
それだとソース上で見づらいんで、
リストみたいに簡易記法があればいいんですけど。

174:デフォルトの名無しさん
09/05/13 22:00:48 .net
doxygenって使ったこと無いんだけど、
ぶっちゃけて言うと、オススメですかい?


175:デフォルトの名無しさん
09/05/13 23:26:06 .net
>>174
おすすめとは言えない

でも面白い使い道がある事は確か

実際に走らせてみて「おー」とか言って楽しむものだと思う

176:デフォルトの名無しさん
09/05/14 09:55:19 .net
>>174
クラス関連図とか、煩いクライアント向けのコーリングツリーを作るのに便利。
# 余程酷いソフトハウスに当たった経験があるのか、関数の依存関係を知りたがるクライアントがいるのよ。

177:174
09/05/14 22:16:15 .net
>>175-176
ほっほー。
ありがとう。
「ある程度習熟するために勉強を要してめんどくさそうだ」
と思っていたが、試してみようかなあ。

178:デフォルトの名無しさん
09/05/14 23:43:40 .net
>>177
コメント付いてないのも全部出力する設定で、
とりあえず手持ちのソースそのまま掛けてみたらいいよ。

それで出来上がるものが気に入れば、それから書き方に慣れていったらいいし。

179:デフォルトの名無しさん
09/05/14 23:50:13 .net
Graphvizの使い方が秀逸だと思う
これは出力結果を印刷してじっくり眺めたい

180:177
09/05/15 06:46:11 .net
>>178
ありがとう。分かった、そうしてみるわ。

181:デフォルトの名無しさん
09/05/15 09:37:18 .net
客先から小汚いソースを受け取ったら、取り敢えずDoxygenに掛けて
静的解析するのは基本だな。

182:デフォルトの名無しさん
09/05/15 10:09:23 .net
>>171
subversionとかの置き換えキーワードもdoxygenは認識してドキュメント化してくれる。

183:デフォルトの名無しさん
09/05/21 13:35:09 .net
ちょっと詳しい説明を箇条書きで入れたいんだけど、
空白行が入るとパラグラフが終わってしまうので、空白行を一切入れないで
長い文章を書かなきゃいけなくなり、なんていうか
ソースコードのコメントが非常に見づらい。本末転倒な気がするんだけど、
空白行を無視してくれる方法とか、ない?

184:デフォルトの名無しさん
09/05/23 02:32:07 .net
>>183
ソースコード上でだけ行間が空いてればいいのなら、
全角スペースを入れておけばどうでしょう?
ドキュメント上で行が連結されたときに、余分な空白が入りますが。

ドキュメントでも行間が空くようにしたいのなら、
行頭の邪魔にならないところにでも「@n」を入れておくぐらいしか思いつきません。

185:デフォルトの名無しさん
09/05/24 13:15:10 .net
doxygenの文字化け対策
URLリンク(d.hatena.ne.jp)
ここに救われた俺がいる。

186:デフォルトの名無しさん
09/05/24 14:01:52 .net
doxygenであるライブラリのドキュメントを作った時、
そのライセンスってどこにどうやって記載すればいいの?

ドキュメント内に表示されるようにしたいんだけど。


187:174
09/05/24 16:39:03 .net
doxygen気に入ってきた。


C++とdoxygen最新版にて。

ドキュメント作ると名前解決に使う::がドキュメントにもりこまれたり盛り込まれなかったりする。
例えばNameS::MyClassが、
ドキュメントの100行目ではNameS::MyClassになっているのに
101行目ではNameSMyClassになっていたりする。

これはどう解決すればいい?


188:デフォルトの名無しさん
09/05/25 10:31:42 .net
>>187
このレスの流れを見ても分かるように、Doxygenは文字コードの扱いが未だ未だ不安定だったりする。
あんたの言う、「ドキュメント」がrtf出力ならこのスレにある対策版を使ってみた方がいいかもしれないし、
chm出力なら>185を参考にするといいかもしれない。

189:デフォルトの名無しさん
09/05/25 20:01:17 .net
>>186
@mainpageコマンドでメインページに入れるか、
@pageコマンドで独立したページにすればどう?

190:174
09/05/25 23:27:45 .net
>>188
ありがとう。
説明不足だったね。
ドキュメントはフツーのHTMLなんだよね〜。chmじゃなくて。

>185をやってみたら文字化けは解消したんだけど
>> ドキュメントの100行目ではNameS::MyClassになっているのに
>> 101行目ではNameSMyClassになっていたりする。
この現象は解決しないのだ。。。



191:186
09/05/25 23:41:59 .net
>>189
@pageコマンド
なんて初めて知ったわ。

どこかいい解説サイトとか紹介してくれる
お方、いらしたらお願い!


192:デフォルトの名無しさん
09/05/27 12:59:53 .net
>>191
doxygenに付いてくるサンプルも参考になるよ。
当然全部英語だけど、記述例のソースと
それを使って出力されたドキュメントがある。
コマンドの説明が知りたかったら、
>>1 のサイトの日本語版マニュアルを見ればいいし。

193:186
09/05/27 19:11:01 .net
>>192
そうか、ありがとう。
見てみるよ。

194:デフォルトの名無しさん
09/05/28 03:59:47 .net
いつの間にかDoxywizardもだいぶ使いやすくなったんだな

195:186
09/05/28 06:28:18 .net
俺は最近doxygenを使い始めて、
最初に
Doxywizard
を使ってかなり直感的に操作できたから知らなかったが、
そうなのか。前は使いづらかったのか。

grach

196:デフォルトの名無しさん
09/05/30 12:54:18 .net
#defineマクロ定義をドキュメント(html)に出力させたくて
URLリンク(www.doxygen.jp)
ここを見て

C++ code - 19 lines - codepad
URLリンク(codepad.org)

こんなの書いてみたんですが、
全然#defineマクロ定義が出力されません。

どうすれば良いでしょうか?


197:デフォルトの名無しさん
09/05/30 17:17:56 .net
>>196
define_test.h のファイルのページ自体は出来てる?
実際のファイル名と @file の後ろに書いたファイル名が合ってないとかはないかな、と思ったもので。

198:196
09/05/30 23:13:55 .net
>>197
URLリンク(loda.jp)
こんなHTMLが生成されました。

どうなんでしょう。。。?

199:197
09/05/31 00:25:04 .net
>>198
define_test.h ファイルのドキュメントのページができてないね。
>>196 のソースをコピペして同じ名前で保存してみたけど、
こっちじゃちゃんと出力されてるよ。

Doxyfile 晒してもらえるなら、何が違うか比べてみるけど。

200:197
09/05/31 00:31:38 .net
>>198
もしかして、SHOW_FILESがOFFになってない?
Doxywizard使ってるなら、ExpartのBuildの下の方。

201:196
09/05/31 04:59:33 .net
>>200
丁寧にありがとうございます。
Doxyfileは以下です。
C++ code - 1503 lines - codepad
URLリンク(codepad.org)
お願いします。

202:196
09/05/31 05:04:41 .net
追記:
  SHOW_FILES=NOになっていましたが、
  YESにしても変わりませんでした。
  私の環境は
  windows xp sp2
  doxygen 1.5.9です。

203:197
09/05/31 05:45:10 .net
>>201
WARN_IF_DOC_ERROR を ON にしたら判明した。
ENABLE_PREPROCESSING が OFF だとマクロは見てくれないらしい。

204:197
09/05/31 05:51:37 .net
補足

WARN_IF_DOC_ERROR を ON にしたら、
「マクロにコメント書いてるけど、ENABLE_PREPROCESSINGがOFFだからスキップしたよ」
というようなメッセージが表示された。

205:196
09/05/31 14:59:44 .net
>>204
ありがとうございます。
WARN_IF_DOC_ERRORとENABLE_PREPROCESSINGをYESにしてみましたが、
結果は代わりありませんでした。
Doxyfileはこちらです。
URLリンク(codepad.org)
設定を読み込み直していないなどということはなく。
doxygenのウィンドウに表示される情報は
URLリンク(codepad.org)
の通りです。

すみませんがよろしくお願い申し上げます。

206:196
09/05/31 22:27:30 .net
追記:
  テキストエディタでDoxyfileを開き、
  = NO
  を検索して全て
  = YES
  に置換してみました。
  それでdoxygenを走らせたところ、見事#defineは出力されました。
  やはり設定が問題な様です。



207:196
09/05/31 22:43:14 .net
どこの設定が問題なのか探るために
Doxyfileにて二分木法的にNOをYESに置換してみました。

ファイルのど真ん中の行を基準に上だけないし下だけを
全部NO→YES置換を行いました。

しかし、このどちらも#defineが出力されません。
やはり複数の設定項目が関わっているようです。

208:196
09/05/31 22:56:12 .net
解決しました。

正解は
・ENABLE_PREPROCESSINGをYESにする。
・SHOW_FILESをYESにする。
でした。両方が同時に満たされていないとだめなようです。

お手数をおかけ致しました!

209:197
09/06/01 01:23:37 .net
>>205-208
解決したようなのでもういいかもしれないけど、
WARN〜系の設定は、出力状態を変更させるためのものではなくて、
コメント付けてるのに出力されない設定になってるとか、
記述漏れがあるとか、そういうエラーメッセージを表示するためのもの。

今後何かうまくいかないときに参考になるかもしれないので念のため。

210:196
09/06/01 05:54:55 .net
>>209
はい、WARN〜系の設定に関して、よく頭に入れておきます。

ありがとうございました。

211:デフォルトの名無しさん
09/06/01 23:20:24 .net
Windows XP SP2, doxygen 1.5.9です。
htmlドキュメントを生成すると、
本文中のstd::coutのようなスコープ解決演算子が消えてしまい、
stdcoutになってしまうことが多々あります。
再現するソースやその結果のhtml, Doxyfileは以下の様です。
URLリンク(loda.jp)

具体的にはこのソースにて
 Test::foo()は
 numをstd::coutに出力します。
になるはずが
 Test::foo()は
 numをstdcoutに出力します。
になってしまいます。

再現条件は絞れておりません。
どうかお知恵をおかしください。
よろしくお願い申し上げます。


212:デフォルトの名無しさん
09/06/02 02:54:51 .net
>>211
理由はよく分からないけど、std::coutの前後に空白を入れたら正しくなりました。
識別子っぽいものに非ASCII文字がくっついてたらおかしくなるってことじゃないかと思うんですが。

213:211
09/06/02 06:08:56 .net
>>212
たしかに、前後に空白で正しく表示されます。
本当に適用したいソース(再現用ソースでない)でもうまく表示されます。
ありがとうございました。

214:デフォルトの名無しさん
09/06/02 23:53:16 .net
>>195
今のdoxywizardはver.1.5.8(去年の暮れ頃)からですね。

基本的な設定項目だけのwizardモードと、
設定可能な項目が全部表示されるexpertモードの2本立てというのは
昔も今も変わりませんが、
設定を変えたら保存しないと実行できなかったとか、
設定項目のセクション切り替えがタブで、expertモードだと
たくさん並んでるのをぐるぐるスクロールさせる必要があったとか、
細かいところで少し不便でした。

マニュアルに載ってるスクリーンショットは旧バージョンのような気がします。

215:デフォルトの名無しさん
09/06/02 23:58:29 .net
doxygenで、1カ所に書いたコメントを複数箇所で参照する方法はありますか?

例えば、
hoge.h内で@version 1.1.1
という記述が同じhoge.h内で他にも複数箇所に登場する場合、
全部に@version 1.1.1と書いてしまうとバージョンを上げる時に
全箇所を手動で修正する羽目になってしまいます。

どうにかする手段はありますか?



216:デフォルトの名無しさん
09/06/03 02:07:50 .net
>>215
設定ファイルのALIASESで@version 1.1.1に別名をつければ、
バージョンを上げるときはそこだけ変えればOK

というのはどうでしょう?

217:デフォルトの名無しさん
09/06/03 03:43:33 .net
質問です。

いままでのプログラムは以下のようにコメントしていたのですが、
doxygenでは/** */の形式にしないとドキュメント作成はできないのでしょうか?
コメント部分を目立たせたいので、できれば今までのコメント形式を維持したいのですが・・

今までのコメント例
//********************************************************
// Test.cpp
// 2009.09 by Tester
// テスト用のクラス
//********************************************************

これを
/**
*
*
*
*/
形式にするのは少し抵抗があります

218:デフォルトの名無しさん
09/06/03 08:40:05 .net
>>217
特定の形式にしないと、ドキュメントにしないコメントと区別できないですからね……

使えるコメント形式はマニュアルの「Documenting the code」にいろいろ例があります。
(日本語マニュアルは古くて少し情報が少ないです)

今までのに比較的近いのは
/*****************************************************//**
* Test.cpp
* 2009.09 by Tester
* テスト用のクラス
*********************************************************/
でしょうか。

219:デフォルトの名無しさん
09/06/03 10:41:33 .net
>>217
最初と最後の //****** はそのままで、途中の行だけ先頭の//を3文字にすればいい

220:デフォルトの名無しさん
09/06/03 10:48:32 .net
つまり、こうだな。
//********************************************************
/// \file Test.cpp
/// \date 2009.09
/// \author Tester
/// \brief テスト用のクラス
//********************************************************


221:デフォルトの名無しさん
09/06/03 16:06:28 .net
>>217
俺も抵抗があったけど、
変えてみたら意外と平気だったよ。
要は見慣れるかどうか。

222:デフォルトの名無しさん
09/06/03 16:09:51 .net
>>216
ALIASES
なんてものがあるのですね。
ありがとうございます、試してみます。

223:デフォルトの名無しさん
09/06/03 22:23:44 .net
>>218-221 thanks

ですが、ファイルの最初のコメントを
//********************************************************
/// \file Test.cpp
/// @file TEST.cpp
//********************************************************

と色々やってみたのですがうまくいきませんでした・・
ファイルの最初だと///ではドキュメント化されないのでしょうか
クラス宣言前や関数前では///で書いたコメントはちゃんとドキュメント
のコメントとなっておりました。

ちなみに、ファイル一覧からコードを見るとなぜか明朝体?で表示されてしまいます。
以下のドキュメントのようにゴシック表示をしたいのですが、Font設定はどのようにすればよいでしょうか?
URLリンク(www.ee.t-kougei.ac.jp)



224:デフォルトの名無しさん
09/06/03 22:57:41 .net
追加で質問失礼。

Player.hの内容↓

/** @brief クラスの簡易説明
 * このクラスの使用目的・使用方法など詳しい情報を書く。
 * @todo 必要であれば記述
 * @bug バグがあれば記述
*/

#if !defined (__PLAYER_H__)
#define __PLAYER_H__

class CPlayer
{
...
}


というプログラムだと、インクルードガードのほうに

マクロ定義
#define __PLAYER_INFO_BASE_H__
クラスの簡易説明  * このクラスの使用目的・使用方法など詳しい情報を書く。

というドキュメントが付いてしまうのですが、
インクルードガードは一番上に書かなければいけないのでしょうか?

できればファイルに関するコメントを一番上に記述したいのですが・・・

225:デフォルトの名無しさん
09/06/03 23:10:52 .net
さらに追加質問ですいませんorz


出力されたドキュメントは任意の名前のフォルダに作成されますが、
index.htmlが他の細かいファイルと一緒のフォルダにあるため探しづらいです。
そのため、index.htmlだけ残して他のファイルを別のフォルダに押し込む
というようなフォルダ構成を構築したいのですが、そういったことは可能でしょうか?

226:デフォルトの名無しさん
09/06/03 23:33:53 .net
>>223
ファイルの最初のコメント:
ファイル名の大文字・小文字の問題かもしれません。
ファイル名無しで @file だけにしてみてはどうでしょうか。

フォント:
フォントはデフォルトのスタイルシートで、
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
と設定されてるので、
特にカスタマイズしてなければゴシックで表示されるはずなんですが。

>>224
対象を指定しないドキュメントは、直後にあるものに関連づけられます。
ファイルに関するコメントにしたいなら、@file が必須です。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

2953日前に更新/162 KB
担当:undef