ASDTのエディタ画面をカスタマイズ


ソースをみてみよう〜


1.plugin.xml
pluginタグのclass属性を見る。
org.asdt.ActionScript2_Pluginクラス
ここには、pluginの開始/終了処理を書く。
extensionタグのclass属性を見る。
org.asdt.ui.editor.ActionScript2Editorクラス
ここには、拡張ポイントのエディタに関する処理を書く。
今回は、入力補完をしたいので、このソースを見る。


2.ActionScript2Editorクラス
初期化処理のinitializeEditorメソッドを見る。


以下の命令でASConfigurationクラスをインスタンス化している。
setSourceViewerConfiguration(new ASConfiguration(colorManager, this));


3.ASConfigurationクラス
ASConfigurationクラス内では、後でgetContentAssistantメソッドが呼ばれる。
getContentAssistantメソッド内では、入力補完のオブジェクトを設定している。
assistant.setContentAssistProcessor(new ASCompletionProcessor(editor),IDocument.DEFAULT_CONTENT_TYPE);
ASCompletionProcessorクラスですね。


4.ASCompletionProcessorクラス
ASCompletionProcessorクラス内では、後でcomputeCompletionProposalsメソッドが呼ばれる。
computeCompletionProposalsメソッドでは、入力補完のオブジェクトを設定している。
メソッド内では、入力補完のためいくつかのクラスが呼び出されている。
入力補完の提案をする順番はだいたい以下の通りで、
・ローカル変数


・変数


・関数


・キーワード


・importされた型


・テンプレート


となっています。ここに、独自のアルゴリズムを入れて、SpringとかFlexxmlから読み込んだ情報を追加してあげれば、Flex用のPluginとして動きますね。


さっそく、入力補完の提案を追加してみました。

ローカル変数やフィールドの追加


キーワードの追加


テンプレートの追加



なんでもアリになってきた〜。