【コメント】doxygen【コンソメ】

■ このスレッドは過去ログ倉庫に格納されています
008582
垢版 |
2008/10/22(水) 10:40:25
>83-84
ありがとう、ただそれだとattributeが消えちゃうよね
なんとか残したまま正しく動作させたいんですよ
0086デフォルトの名無しさん
垢版 |
2008/10/22(水) 12:17:14
1.5.x で enum EnumName に対して @relatesalso StructName を書くと StructName のページに
EnumName が出るようになるのですが、enum のメンバーのリストが表示されなってしまいました。
1.4.x ではできていた記憶があるのですが、1.5.x で正常にする方法はあるでしょうか?

OPTIMIZE_OUTPUT_FOR_C は YES です。
0090デフォルトの名無しさん
垢版 |
2008/10/24(金) 09:39:03
正しくって……
そんな拡張に一一対応しろってのか?
ソースあるんだろうから自分でやれよと思うのだが。
0091デフォルトの名無しさん
垢版 |
2008/10/24(金) 10:10:38
いちいちソース書き換えとかコスト見合わないでしょ
だからそれ以外でなんとかする方法を探してるんじゃないか?

まあattributeは確かに独自拡張だが、gccだし割とよく使われてるんで対応してても良いと思う
0092デフォルトの名無しさん
垢版 |
2008/10/24(金) 10:15:31
汎用的に
構文解析時だけ指定キーワードを無視するオプションがあればいい
つか、ないのかな?
0095デフォルトの名無しさん
垢版 |
2008/10/25(土) 17:40:51
そもそもC言語にメンバ関数は無いんだからdoxygenのバグとも言えるだろ
想定外の構文には警告なりエラーなり出して欲しいよな
0097デフォルトの名無しさん
垢版 |
2008/11/08(土) 17:25:21
mac osx 10.5.5
doxygen 1.5.7.1

で実行しようとすると、Failed to run doxygen と言われて一切実行できません。
対処法知っている方、教えて下さい。
0098デフォルトの名無しさん
垢版 |
2008/11/19(水) 23:51:11
クラス関連図って作れますか?
1クラスの構造を図にはできるみたいですが・・・
C++です。
0100デフォルトの名無しさん
垢版 |
2008/12/17(水) 20:18:15
@dateの後ろに付ける日付をsubversionが自動更新してくれるように
$Date$にしたら、出来たhtmlで日付の見出しが2重になってました。
もしかしてバージョン管理システムのキーワードをdoxygenが認識して
適当に見出し付きで整形してくれるんでしょうか。
マニュアルにそれらしい説明を見た覚え無いんですが。
0102デフォルトの名無しさん
垢版 |
2008/12/23(火) 01:27:13
ちょっとメモ。
doxygenで出力したRTFがどうも文字化けするので調べてみたら、\\'を\\\'に変換することで解消することが判った。
要は\を表すのにそれ自身をエスケープして\\とする必要があると言うことなのだろうか。もうちょい調べる必要はありそう。
0103デフォルトの名無しさん
垢版 |
2008/12/27(土) 23:00:37
日本語がうまく通らない原因ってどこにあるの?
0105デフォルトの名無しさん
垢版 |
2008/12/28(日) 04:51:23
Doxygen 1.5.8 age
0106デフォルトの名無しさん
垢版 |
2008/12/28(日) 05:06:03
アップデートコネーから自分で作るか…
0107デフォルトの名無しさん
垢版 |
2008/12/28(日) 09:17:52
>>101
ヘッダーに書けば十分だからじゃないかな。

でも、詳細をヘッダーに長々と書いてヘッダーが読みにくくなりそうなときは、詳細だけcppに分けて書くことはあるよ。それでもdoxygenはちゃんとまとめてくれる
0108101
垢版 |
2008/12/28(日) 15:47:03
>>107 thx

十分かとも思えてきた。
概要かけばいいんだもんな。
漏れは最近doxygen向けのコメント付けはじめたからもうちょい使って慣れてみるわ
0110102
垢版 |
2008/12/29(月) 14:53:28
更に追加。他にも、エスケープすべき文字をエスケープしていない箇所を発見。
xyzzyの場合の正規表現置換でこれを行なうとかなり改善する。
(query-replace-regexp "\\(\\\\'..\\)\\([{}][^
][^t]\\)" "\\1\\\\\\2")
# 場当たり的だなぁ……
0111102
垢版 |
2008/12/29(月) 14:56:31
あー、済まない、補足。

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

誰か、ソース拾ってきて対策してくれる奇特な人はいないもんかのぉ。
0112デフォルトの名無しさん
垢版 |
2008/12/29(月) 16:04:40
>>111
文字列として表示されるべき「{」や「}」がエスケープされてないってこと?

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

行末が特定の文字(「定」とか「得」とか)の場合になるみたいだけど、
条件がよくわかりません…
0113102
垢版 |
2008/12/29(月) 16:16:27
>>112
2バイト文字の2バイト目に{}\のいずれかが来るケースで、エスケープされないようです。
# 「定」「得」どちらも該当しないようですが……

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

念のため確認したら、手元のDoxygenはCygwin同梱の1.5.5でした。
# さて、rtfを変換するツールを真面目に作るのとdoxygenそのものを修正するのとどっちが楽だろかw
0114デフォルトの名無しさん
垢版 |
2008/12/29(月) 16:26:38
>>113
だいぶ前からエンコーディング指定して全部一旦 UTF-8 に変換されるようになったから
その手の問題は解決済みだと思ってるんだけど、何かバージョン上げれない理由でもあるの?
0116デフォルトの名無しさん
垢版 |
2008/12/29(月) 18:19:03
cygwinは使ってないので、それが理由かどうかは知りませんが、
1.5.6から1.5.7.1まではフレーム付きHTMLのツリービューで
英数字以外が文字化けするという問題がありました。
2日前に出たばかりの1.5.8でやっと解決されました。
0118デフォルトの名無しさん
垢版 |
2008/12/29(月) 20:15:40
全部一旦 UTF-8 に変換されるようになったのは、1.5.2以降だから、
>>113, >>115 の cygwin版も UTF-8 に変換されるバージョンです。

最新版でも日本語RTFはかなり駄目な感じです。
手元のソースを処理させてみたら、目次の見出しの「目次」の後ろとか、
あちらこちらに見えてはいけない「\par」や「{」が見えて、
本文数ページで破綻します。
0120118
垢版 |
2008/12/29(月) 22:31:08
昔、1.4.6でRTFを作ったことのあるソースを、設定をほとんど変えずに1.5.8に掛けても駄目でした。
1.4.6で作ったRTFの半分ぐらいしかファイルサイズがありません。
むしろ内部処理が UTF-8 になってから、おかしくなったんじゃないかという気がしてきました。
0121デフォルトの名無しさん
垢版 |
2008/12/29(月) 23:06:51
折角色々対応してあったのを、UTF-8にしたのを機に捨ててしまったような感じだな。
この正月休みの間に暇があるようならソースでも見てみるか。
0122デフォルトの名無しさん
垢版 |
2008/12/30(火) 01:23:34
過去のバージョンを取ってきて順に試してみました。
1.5.0までは日本語の RTF が生成できて
(おかしなところが無いかまではチェックしてませんが)、
1.5.1で、
"Warning: Output language Japanese not supported! Using English instead."
と表示され、日本語が表示できませんでした。
ここで一旦無かったことにされたようです。
0123デフォルトの名無しさん
垢版 |
2008/12/30(火) 03:40:46
問題分かったかも。

id 437346 のバグレポートで日本語対応の議論がされてるんだけど、
報告者の人が提案した、
x080より大きいバイトが来たらマルチバイト判別フラグON、
次のバイトでフラグOFF、というのをそのまま採用してくれたらよかったのに、
0x80より大きいかの判断をそのままフラグに入れちゃってるから、
2バイト目が0x80より大きい場合に、その次のバイトまでエスケープされて、
それがエスケープされたら困るものの場合に不幸になってるということかと。
0125デフォルトの名無しさん
垢版 |
2008/12/30(火) 08:55:13
>>123
事はそう単純じゃない。というか、もっと単純。
内部UTF-8をcp932に変換して、必要ならエスケープすべきなのにそれをしていないと言うのが>102=113の観測だろ。
例えば「ソソ」が「\'83\\\'83\\」にならないといけないのに「\'83\\'83\」になると。

それとも、二種類の問題が独立して存在しているのか?
0126123
垢版 |
2008/12/30(火) 10:22:07
>>125
ああ、すいません。
>>123で書いたのは、1.5.8の場合の問題です。
>>102,,>>113の、.1.5.5の問題はエスケープされてないというので合ってると思います。
1.5.8でそれに対する対応が入れられたけど、方法がまずく、
今度は逆にエスケープすべきでないところまでされたという話。
0128デフォルトの名無しさん
垢版 |
2009/01/08(木) 07:49:37
とりあえず保守ですが、あけおめ。

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

自分はまだ皆様のようにハックに参加できるほど技術がないので、精進したいと思います。
0129102
垢版 |
2009/01/08(木) 09:55:41
又更につまらない問題に遭遇。
折角修正したrtfがWordだと読めるのにOpenOfficeだと文字化けする。
例えば、「\'83\\」のような>125が指摘した例だと、「\'83\'5c」のようにしないといけないらしい。
あーもう、rtfを解析するしかないのかなぁ。
# doxygen1.5.8で変わっているらしいからそっちに手を出すのは避けたいし。
0132102
垢版 |
2009/01/10(土) 15:17:25
ちょっとLinuxに1.5.8をインストールしたので出力してみたが、これは酷いw
2バイト文字を全てコード出力しているのはいいが、>123のように無関係なコマンド文字まで巻き添えにしてしまっている。
おまけに、コマンド文字列を何故か\commentで括ってしまっているので収拾がつかない状態。

そうそう、html出力のツリービューも、(UTF-8)指定なのにも関わらずプロジェクト名がEUCで出力されるので化け化け。
誰かなんとかして〜w
# ってことで、>131に期待♪
0134デフォルトの名無しさん
垢版 |
2009/01/12(月) 00:56:25
>>131
rtfgen.cpp の void RTFGenerator::postProcess(QByteArray &a) です。
こちらを参考に。
ttp://bugzilla.gnome.org/show_bug.cgi?id=437346

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

どうやらDoxywizardのバグのようです。
テキストエディタでDoxyfile開いてプロジェクト名を修正して、
コマンドラインでDoxygenを実行したら、文字化けしませんでした。
0135デフォルトの名無しさん
垢版 |
2009/01/12(月) 02:36:31
>>134 ソース位置ありがとう。
これって、よくわかってないけど、postProcess()で、ファイル全体を
エスケープしてるのかな。
もしそうなら、rtfでの表示される文字列以外も全部エスケープされて
しまい、上のバグが症状がでてるんじゃないかな?
rtf表示文字列だけをエスケープするようにするには、postProcess()
の中でやってちゃだめで、rtfgen.cpp(にあるか知らないけど)
で表示文字列をrtfタグ中に埋め込む時コード当たりでやらないといけなそう?

とりあえず、doxygenをWindowsでコンパイル出来る環境作り
からやらないといけないのが辛いorz
0137134
垢版 |
2009/01/12(月) 21:40:12
>>135
0x80より大きい値とmb_flagが1のときだけエスケープされるはずです。
1.5.7.1以前のバージョンではmb_flagが無くて、0x80より大きい値という条件しかなかったので、
マルチバイト文字の2バイト目が「{」や「\」などの場合におかしくなってました。

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

ttp://bugzilla.gnome.org/show_bug.cgi?id=437346
で、T.Matsuyama氏が提示したコードが正しく動くはずです。

#そこまで分かってるな自分でやれ、と言われそうだ……
すいません、環境作りが荷が重いですorz
0140デフォルトの名無しさん
垢版 |
2009/01/27(火) 01:28:30
てか、>>137のURLが示すバグをreopenして開発者に教えてあげればいいんじゃないの?
アカウント持ってないから誰でもreopenできる設定なのかはわからないけど
0142デフォルトの名無しさん
垢版 |
2009/01/30(金) 01:55:55
コメントが一切ついてないソースに
関数の定義部分だけ自動的に
タグを生成してくれるツールないですか?
0147139
垢版 |
2009/02/15(日) 17:55:27
やっと>138を試せた。取り敢えず、cygwinからでも使えることと日本語が化けないことは確認した。
但し、OpenOffice(3.0)では{comment[^{}]}を取り除く必要があったこととTITLEなどのフィールドは
巧く変換できなかったけれど、これは元からそうなのかもしれない。
今度機会があれば、素直にMSwordに食わせてみるとしよう。
0148139
垢版 |
2009/02/17(火) 18:58:43
cygwinで>138を動かし、できたRTFをWORD2000に食わせた。
全選択してフィールドの更新、画像アンリンクのマクロを動かして、
docに名前を変えて保存。一応、スタンダロンで使える資料になるようだ。

で、画像アンリンクのマクロって需要あるかな。あるようならどっかで公開するけど。
0149デフォルトの名無しさん
垢版 |
2009/02/28(土) 05:29:11
doxygenのライセンスってGPLですよね。
doxygenのコメントを書いたソースって公開しないと駄目ですか?
0151149
垢版 |
2009/02/28(土) 05:50:38
>>150
ありがとうございます
0153デフォルトの名無しさん
垢版 |
2009/03/03(火) 22:08:28
ソフトのドキュメントを作るのにDoxygenを利用してもGPLにする必要なし。
ソフトの機能としてDoxygenを利用する場合はGPL。
0154デフォルトの名無しさん
垢版 |
2009/04/06(月) 21:16:11
@a と @p ってどう使い分けてる?
どっちも文中の引数のフォントを変えるために使うものみたいだけど。
0155デフォルトの名無しさん
垢版 |
2009/04/08(水) 12:32:53
\aは「特殊なフォント」ということで一般的にはItalicかな。
\pは\cと等価で「タイプライタフォント」ということで等幅フォントが使われる。
後は、実際の出力を見て検討したら?
0156154
垢版 |
2009/04/09(木) 00:04:14
普通はどうする、ということは特になくて、見た目の好みで使えばいいのですか。
ヘルプを見ると、@aは "refer to member arguments" 、
@pは "refer to member function parameters" と書かれてて、
微妙に使い分けがあるようなないような、よく分からなかったもので。
0157デフォルトの名無しさん
垢版 |
2009/04/09(木) 07:14:32
意味で使い分ければいいと思う。
フォントとかの体裁はCSSで変えられるんじゃなかったかな?やったこと無いけど。
0158デフォルトの名無しさん
垢版 |
2009/04/09(木) 08:11:53
@a の argument が実引数で @p の parameter が仮引数なわけだけど、
コメント中では仮引数しか現れない気がする。実引数が現れることなんてあるか?
0159デフォルトの名無しさん
垢版 |
2009/04/09(木) 09:06:56
恣意的に使い分ければいいんじゃね?

>>157
出力するものによって指定するスタイルシートや指定方法は違うけど、htmlならcss,だね。
やったことないけどw
0162デフォルトの名無しさん
垢版 |
2009/04/25(土) 21:37:10
メソッドのコメントは、戻り値がなくても「@return なし」と明示的に書くべきでしょうか?
引数がない場合も同様に「@param なし」と書くでしょうか?
0163デフォルトの名無しさん
垢版 |
2009/04/25(土) 21:38:20
前者はお好きにどうぞ。
後者は「なし」なんて引き数はないぞって警告が出るんじゃないかな?
0164162
垢版 |
2009/04/25(土) 21:45:11
>>163
レスありがとうございました。
確認したら「@param なし」ではwarning argumentと出ましたのでこれは書かないようにします。
0165デフォルトの名無しさん
垢版 |
2009/04/30(木) 13:43:57
今の大会は、開発環境の違いによる面白さもあると思う。
共通スペックでやるなら別に大会をおこせばよいと思う。
0167デフォルトの名無しさん
垢版 |
2009/04/30(木) 23:56:10
Doxygen 1.5.9 age
0169デフォルトの名無しさん
垢版 |
2009/05/12(火) 10:55:11
ソースの先頭のコメントの 理想的なサンプル を教えて。
言語は問わないけど、出来ればCで。
0170デフォルトの名無しさん
垢版 |
2009/05/12(火) 18:22:26
理想的かどうか知らんが、私の典型。
--
////////////////////////////////////////////////////////////////
/// \file foo.c
/// \brief あーたらこーたら
///
/// あーたらこーたらをあーたらこーたらするとかなんとか。
/// \date 2009/3-4
/// \author bar\@site
/// \attention なんだかんだ
/// \version hage.hige.hoge
//
--
0171デフォルトの名無しさん
垢版 |
2009/05/13(水) 04:06:28
>>169
とりあえず最小限はこうだろ。 JAVADOC_AUTO_BRIEF オンで。

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

170 のやつだと、ファイル名はどうせ名前変更したときに更新し忘れるし、
日付や作者やバージョンはバージョン管理ソフトに任せればいい。
詳細な説明も attention も必要に応じて、だな。とにかく書かないで済むものは
書かないのが一番。
0173デフォルトの名無しさん
垢版 |
2009/05/13(水) 16:20:47
表書くのってtableタグ使うしかないんでしたっけ?
それだとソース上で見づらいんで、
リストみたいに簡易記法があればいいんですけど。
0175デフォルトの名無しさん
垢版 |
2009/05/13(水) 23:26:06
>>174
おすすめとは言えない

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

実際に走らせてみて「おー」とか言って楽しむものだと思う
0176デフォルトの名無しさん
垢版 |
2009/05/14(木) 09:55:19
>>174
クラス関連図とか、煩いクライアント向けのコーリングツリーを作るのに便利。
# 余程酷いソフトハウスに当たった経験があるのか、関数の依存関係を知りたがるクライアントがいるのよ。
0177174
垢版 |
2009/05/14(木) 22:16:15
>>175-176
ほっほー。
ありがとう。
「ある程度習熟するために勉強を要してめんどくさそうだ」
と思っていたが、試してみようかなあ。
0178デフォルトの名無しさん
垢版 |
2009/05/14(木) 23:43:40
>>177
コメント付いてないのも全部出力する設定で、
とりあえず手持ちのソースそのまま掛けてみたらいいよ。

それで出来上がるものが気に入れば、それから書き方に慣れていったらいいし。
0180177
垢版 |
2009/05/15(金) 06:46:11
>>178
ありがとう。分かった、そうしてみるわ。
0181デフォルトの名無しさん
垢版 |
2009/05/15(金) 09:37:18
客先から小汚いソースを受け取ったら、取り敢えずDoxygenに掛けて
静的解析するのは基本だな。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況