Я работаю с выборками в редакторе исходного кода Eclipse. Я определил привязку клавиш, которая возвращает мне «текст» в текущей позиции каретки. Мне удалось проанализировать текущую позицию каретки в IJavaElement
private void processEditorSelection(IEditorPart part, ITextSelection selection) {
IEditorInput editorInput = ((IEditorPart) part).getEditorInput();
final ITypeRoot root = (ITypeRoot) JavaUI.getEditorInputJavaElement(editorInput);
if (root != null) {
int offset = (selection).getOffset();
IJavaElement[] codeSelect = root.codeSelect(offset, 0);
if (codeSelect.length > 0) {
//codeSelect[0...n] are my resolved elements at the current caret pos.
}
То, что мне пока не удалось выяснить, - это как определить тип включения. например:
public void do() {
System.out.println("it");
}
Если каретка находится в System.out, я получаю JavaElement системного вызова, но на самом деле меня интересует включающий метод. Кто-нибудь знает, как спросить Eclipse для типа вложения? Например, в какой единице или методе компиляции содержится мое текущее положение carret?
Спасибо за ответ