私のプラグインでは、CompilationUnitEditorで選択したコードにアクセスしようとしています。したがって、私は次のコードコンテキストメニューや利用への貢献を追加しました:Eclipseで選択したコードを取得するにはどうすればよいですか?
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」を取得したいと思います)、このように強調表示されているコードの要素にアクセスしたい、私は私がどうあるべきか見当がつかない。
は、しかし、私は強く、より良い選択肢がなければならないことを前提としています。 – RoflcoptrException
これはうまくいくかもしれませんが、非常に低レベルのAPIにアクセスしているので、このソリューションに対してはお勧めします。ソースビューアなどのJFace APIを使用してエディタと対話する必要があります。 –
編集してコードを追加しました。 – Alex