Per il mio plugin sto provando ad accedere al codice selezionato in CompilationUnitEditor. Quindi ho aggiunto un contributo per il menu di contesto e l'uso seguente codice:Come posso ottenere il codice selezionato in 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);
}
}
}
Ora il problema è che il metodo SelectionChanged (...) viene chiamato solo quando ho realmente selezionare qualcosa in modo che ho potuto copia/incolla è . Ma voglio accedere agli elementi di codice che vengono evidenziati come questo (qui vorrei ottenere il "IEditorPart")
Purtroppo, non ho idea di cosa dovrei cercare.
che avrebbe funzionato credo, però presumo fortemente che ci deve essere una scelta migliore. – RoflcoptrException
Questo potrebbe funzionare, ma vorrei raccomandare contro questa soluzione poiché fare ciò accederà a un'API di livello molto basso. Dovresti interagire con l'editor tramite API JFace come il visualizzatore sorgente. –
Modificato per aggiungere del codice. – Alex