Ich bin ziemlich neu in Eclipse Plugin-Entwicklung, also brauche ich ein bisschen Hilfe. Ich habe ein Projekt, in dem ich die aktuelle Position des Cursors innerhalb eines aktiven Editors erhalten muss und auf eine Schaltfläche klicke, um in einem Dialogfeld die Methode anzuzeigen, die es direkt umgibt. Ich habe folgendes versucht und bin bisher nur in der Lage, den Namen der Methode zu erhalten, aber nicht den gesamten Quellcode, wie ich es möchte. Wenn ich nur mit compilationUnit versuche, kann ich auch den gesamten Quellcode des aktiven Editors bekommen. Andere Fragen scheinen nur den Namen der Methode zu erfordern, aber ich bin daran interessiert, den vollständigen Quellcode der Methode zu erhalten. Gibt es eine Möglichkeit, den Quellcode nur der Methode zu erhalten, die den Cursor direkt umgibt?Wie bekomme ich die Methode direkt um die Caret-Position?
IWorkbenchPage page = window.getActivePage();
IEditorPart editor = page.getActiveEditor();
ITextEditor textEditor = (ITextEditor) page.getActiveEditor();
IJavaElement element = JavaUI.getEditorInputJavaElement(textEditor.getEditorInput());
if (element instanceof ICompilationUnit) {
ITextSelection selection = (ITextSelection) ((JavaEditor) textEditor).getSelectionProvider().getSelection();
IJavaElement selected;
try {
selected = ((ICompilationUnit) element).getElementAt(selection.getOffset());
if (selected != null && selected.getElementType() == IJavaElement.METHOD) {
return (IMethod) selected;
}
MessageDialog.openInformation(
window.getShell(),
editor.getTitle(),
selected +"\n"); //(IMethod)
} catch (JavaModelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}