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メソッドでは、入力補完のオブジェクトを設定している。
メソッド内では、入力補完のためいくつかのクラスが呼び出されている。
入力補完の提案をする順番はだいたい以下の通りで、
・ローカル変数
となっています。ここに、独自のアルゴリズムを入れて、SpringとかFlexのxmlから読み込んだ情報を追加してあげれば、Flex用のPluginとして動きますね。
さっそく、入力補完の提案を追加してみました。
なんでもアリになってきた〜。