Используйте метод org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.getActiveEditorJavaInput()
. Это возвращает элемент Java, отредактированный в текущем активном редакторе. Тип возвращаемого значения - org.eclipse.jdt.core.IJavaElement
, но если редактируется файл Java, тип времени выполнения будет org.eclipse.jdt.core.ICompilationUnit
.
Чтобы получить AST, то есть org.eclipse.jdt.core.dom.CompilationUnit
, вы можете использовать следующий код:
public static CompilationUnit getCompilationUnit(ICompilationUnit icu,
IProgressMonitor monitor) {
final ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setSource(icu);
parser.setResolveBindings(true);
final CompilationUnit ret = (CompilationUnit) parser.createAST(monitor);
return ret;
}
Имейте в виду, что это для Java> = 5. Для более ранних версий вам нужно переключить аргумент на ASTParser.newParser()
.
Я понимаю, что на этот вопрос был дан ответ, но я хотел пролить свет на класс EditorUtility, который здесь весьма полезен.