私のプラグインでは、CompilationUnitEditor で選択したコードにアクセスしようとしています。したがって、コンテキスト メニューにコントリビューションを追加し、次のコードを使用します。
public class ContextMenuHandler implements IEditorActionDelegate {
private IEditorPart editorPart;
@Override
public void setActiveEditor(IAction action, IEditorPart editorPart) {
this.editorPart = editorPart;
}
@Override
public void run(IAction action) {
JavaUI.getEditorInputJavaElement(editorPart.getEditorInput());
}
@Override
public void selectionChanged(IAction action, ISelection selection) {
if (selection instanceof TextSelection) {
TextSelection text = (TextSelection) selection;
System.out.println("Text: " + text.getText());
} else {
System.out.println(selection);
}
}
}
問題は、メソッド selectionChanged(...) が実際に何かを選択したときにのみ呼び出され、コピー/貼り付けできることです。しかし、このように強調表示されているコード要素にアクセスしたい (ここでは「IEditorPart」を取得したい)
残念ながら、何を探すべきかわかりません。