Kengo's blog

Technical articles about original projects, JVM, Static Analysis and JavaScript.

HSP編集用Eclipseプラグイン試作

Eclipseプラグイン学習の一環として、HSPスクリプトを色分けするプラグインを作成しました。コメントと文字列を色分けするだけですが、スキャナやトークンなどエディタ用プラグインを作成ための基礎知識を身につけられたと思います。

ほぼサンプルコードと変わりませんが、CodeReposにてプロジェクトファイル一式を公開しています。なお、メニューバーからHSPファイルを開くと関連付けられたhsed3.exeが起動してしまう不具合が分かっています。現時点ではパッケージ・エクスプローラから開く必要があります。

f:id:eller:20090222234447p:image

実装時に躓いたところ

テスト時の不具合原因究明
メニューバーからファイルを開いた際にエラーが発生しても"ERROR"と表示されるだけで、その原因が分かりません。デバッグモードでも同様で、ログファイルなども残されていないようです。作成したクラスから例外が投げられていないことはデバッグモードで確認済みです。
サンプルプロジェクトの対応拡張子をhspに書き換えただけでも再現することとパッケージエクスプローラから開く際にはエラーにならないことから、Eclipse実装の理解不足に起因する不具合と思われます。来週はメニューバーからのファイル読み込みの実装について調べます。

感想

エディタつきプラグインもコードの装飾も予想以上に簡単に実装できました。
面倒と考えていたエスケープシーケンスの判定も、SingleLineRuleクラスのコンストラクタに適切な引数を渡すだけで実装できてしまいます。これには結構感動しました。
クラスの命名法やコードの書き方など細かい点でも参考になりましたが、パーティションスキャナと(パーティション内の)スキャナを混同しやすいのでより上手い命名があればなぁとも思います。

今後の流れ

プラグインの勉強を兼ねてしばらく開発を続けてみたいと思っています。HSPを書いていると縦に長くなりがちなので、#module〜#globalを1行に折りたたんだりアウトライン表示をしたりといった機能をつけると面白そうです。HSPはオンラインヘルプも充実しているので、ワンキーヘルプの実装およびオンライン化もしてみます。
HSPにはJavaユーザが少ないのでOpenHSPへ還元することは考えていませんが、公式エディタやLe.Antillaあたりと競い合えれば面白そうです。