2009年5月18日月曜日

AIR GEAR-次はFormatterとコード補完

先日のリリースで、簡単なデバッグ実行を組み込んでみたAIR GEARですが、次はFormatterとコード補完。...ってことで、今週末に少し進め始めました。

Formatterは
コメント部分と文字列部分を除いて、{ の数で階層を判別、インデントを作成。

コード補完は、
FlexSDKに含まれているソースのクラス名のみを補完+import文の生成。
MXMLの外部ASファイルの場合には、MXMLのGUIコンポーネントについても補完対象に。

コンポーネントのイメージを表示して分かりやすくしてみたww

ここまでやってみたのですが、やっぱり構文解析しないと中途半端な感。

Formatでは、インデント以外の...例えば「カンマの後ろにスペースを入れる」などのようなものは、構文が解析できてないとできない。

特に違和感感じるのが、ActionScriptのコード補完。
MXMLのGUIコンポーネント情報が補完できるのに、自分自身のASファイルの変数やfunctionは補完してくれないのは、やっぱおかしいですよね〜。

構文解析をしなくても出来そうな所をポチポチ組み込みしていたのですが、もうやんなきゃダメそうです。

ということで、今日は旦那の協力の元、ANTLRを見ていました。
ANTLRを使ってるFlexFormatterのソースを有り難く見させてもらって中を見ていたのですが...ANTLRが出力したParserを見ようとして膨大な行数にびっくり!
でも、grammarを見ると言語の勉強になりますねー。

AIR GEARでは、細かい所まで構文解析をしたり、文字変更時のリアルタイムにエラーチェックをしたり...って所までは特に考えていません。今は。
或る程度のFormat、コード補完ができればよし!かな と。
AXDTのようにIMP使うといいんでしょうが、それはまた先の話。
それをする位なら、AXDTのNatureを追加できるようなActionを追加してあげるほうがいいだろうな。。

さて...そんな最低限のFormatとコード補完機能...も道のりは大変そう。
でも私がAIRアプリ作る際にはそれで十分なので、アノ有料製品を買わなくてもイイかも♪

この機能の次は、個人的趣味が入りますが、
FlexUnitなどのテストを行なえるプロジェクトのWizardの作成とか...ANTでのビルド定義の自動出力とか...あわよくばMavenでビルド定義書けないかとか...見てみたいなぁ
• • •