-中期課題

0.6系で落ち着くまでにはもう少し時間が掛かりそうです。平行して0.7系のサーチとリファクタリングを検討中。これらは表裏同じくするところがあります。そして、既存のバリデーションやOutlineも実はそれらと近い内容を持つ機能です。0.6系のうちにバリデーションとOutline周辺のコードを整理して熟成しておく必要があるってことですね。モデル中のツリーウォークと、キャッシュ、RTTIの機能がよくなると、パフォーマンスも上がります。
Kijimunaを作るうえで、参考にしたプラグインは、3つあります。TapestryのプラグインであるSpindleとSpringのプラグインであるSpringIDEは初期にモデルパーサーをどうつくろうか悩んでいたときに参考にしました。これらはUIに力を入れているプラグインなのでプラグインの方向が固まってきた0.5系あたりに入ってからはしばらく見ることもありませんでしたが、また参考になるときもくるでしょう。0.5系〜0.6系の時期で一番参考にしたのは、EclipseのPDEプラグインです。coreの機能それぞれにPDEの影響があるかと思います。
Kijimunaの特徴をプラグインのミクロ視点で言うと、勝手にRTTIと呼んでいる編集中のJava型情報を取る仕組みにあると思ってます。これはJDTのAPIを使ってるのですが、SpindleやSpringIDEのほか、Eclipse中のプラグインでもここまでしつこく型をチェックしているのは見たことがありません。このRTTIとモデルのIAdaptableおよびラッパークラスの整備の結果、Diconコンポーネントの自動インジェクション状態を常に監視できるようになりました。結構複雑なことをやってるので、当然、0.6系ではそのへんが問題の多そうなところです。自動インジェクションの表示をしばらくは疑いの目でみて何か少しでもおかしなことがあったらレポートください。ここ1つ〜2つのバージョンではたいていバグでしょう。