В настоящее время я работаю над дополнением Eclipse, которое поможет мне кодировать. В основном библиотека фрагментов String.
При создании нового я хотел бы дать ему идентификатор классов ClassName.MethodName.X.
Получение редактора довольно просто:
IWorkbenchPage page = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage();
IEditorPart activeEditor = page.getActiveEditor();
if(activeEditor.getClass().getName().endsWith("CompilationUnitEditor")){
// do something
}
Теперь... есть ли способ использовать API-интерфейсы Eclipse jdt для получения имени метода, в котором находится мой текстовый курсор?
Изменить: ОК. С помощью Андрея, вот что я получил:
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IEditorPart activeEditor = page.getActiveEditor();
if(activeEditor instanceof JavaEditor) {
ICompilationUnit root = (ICompilationUnit) EditorUtility.getEditorInputJavaElement(activeEditor, false);
try {
ITextSelection sel = (ITextSelection) ((JavaEditor) activeEditor)
.getSelectionProvider().getSelection();
int offset = sel.getOffset();
IJavaElement element = root.getElementAt(offset);
if(element.getElementType() == IJavaElement.METHOD){
return element.getElementName());
}
} catch (JavaModelException e) {
e.printStackTrace();
}
}
Работает очень хорошо. Хотя это своего рода грязное решение для использования ограниченных классов.