Dla mojej wtyczki próbuję uzyskać dostęp do wybranego kodu w CompilationUnitEditor. Dlatego dodałem wkład do menu kontekstowego i wykorzystania następującego kodu:Jak mogę uzyskać wybrany kod w 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);
}
}
}
Teraz problem jest, że metoda SelectionChanged (...) jest wywoływana tylko wtedy, gdy naprawdę wybrać coś tak, że mogę skopiować/wkleić go . Ale chcę, aby uzyskać dostęp do elementów kodu, które są podświetlone tak (tu chciałbym uzyskać „IEditorPart”)
Niestety, nie mam pojęcia, co należy zwracać uwagę.
To będzie działać Myślę jednak zdecydowanie założyć, że nie musi być lepszym rozwiązaniem. – RoflcoptrException
To może zadziałać, ale zaleciłbym odradzanie tego rozwiązania, ponieważ byłby to dostęp do interfejsu API o bardzo niskim poziomie. Użytkownik powinien wchodzić w interakcje z edytorem za pośrednictwem interfejsów API JFace, takich jak przeglądarka źródła. –
Edytowane w celu dodania kodu. – Alex