私はProce55ingのコードをEclipse上で書いている。P5付属の貧相なエディタとくらべるとはるかに高い生産性が得られていいのだが、最終的にアプレットにエクスポートするときだけはP5に頼らないといけないのが面倒だ。なのでエクスポート用のDocletを作ろうと画策している。
Docletとは、Java用のAPIドキュメント生成ツールであるJavaDocをカスタマイズするための仕組みだ。JDK1.4からはさらにTagletと呼ばれる機構も増え、より簡単にカスタマイズできるようになった。
JavaDocはEclipse上のメニューから簡単に呼び出せる。なのでDocletとしてエクスポートツールを作ってしまえば簡単にEclipseに統合できるわけだ。
具体的には
のようなソースと
- アプレット用テンプレート(http://www.asahi-net.or.jp/~cs8k-cyu/nik/applet_template_html.html)
- ソース用テンプレート(http://www.asahi-net.or.jp/~cs8k-cyu/nik/source_template_html.html)
を用意してDocletを呼び出すと
- Docletから生成されたRallX用ページ(http://www.asahi-net.or.jp/~cs8k-cyu/java/rallx/)
のようなページが得られるようにしている。P5のエディタからエクスポートするのに比べて
というのが主な違い。
説明文はソースコード内の@p5タグで指定されるdescriptionに表記するようにした。この機能はTagletを使って実現されている。Tagletを使うとこういった独自のタグを定義し、そのタグがソース中に出現した場合の挙動を自由に設定することができる。
APIドキュメント生成はJavaDocが本来備えている機能だ。この機能は標準ドックレットとよばれるDocletで実現されているが、いかんせんProce55ingプログラムに使うには内容がリッチすぎる。なのでP5用ドックレットではクラスツリーや修飾子などを削ってシンプルな見た目にしてみた。
ただこれ、プログラムの理解に役立つかは微妙。JavaDocが生成するAPIドキュメントは、本来他人の作ったクラスを外部から利用するときの手引き書として使うものなので、このようにprivateなメンバまでべたーっと出力すると見にくいんだよね。さらに言えば、Proce55ingで書くような規模のプログラムだとソースを追うだけで十分理解できる場合が多いし、APIドキュメントとソース上にコメントとして書いてある情報がかぶって冗長だし。まあベーマガの投稿記事についていた変数表レベルには使えるのかなあ。