Плагин Eclipse - Поиск расположения частей источника - PullRequest
1 голос
/ 02 ноября 2009

Я пишу плагин Eclipse, который должен изменить исходный код в редакторе Java. Как я могу определить расположение исходного раздела, как

  • объявление класса
  • импорт
  • поля класса
  • методы

и т. Д.

Ответы [ 2 ]

5 голосов
/ 02 ноября 2009

Вам необходимо понять, как JDT работает в Eclipse.

Вы можете написать что-то вроде этого в плагине:

IProject project = ResourcesPlugin.getWorkspace().getRoot()
    .getProject(PROJECT_NAME);
IJavaProject javaProject = JavaCore.create(project);
IType type = project.findType(TYPE_NAME);
ICompilationUnit icu = type.getCompilationUnit();

Прочитайте Управление Java-кодом , чтобы увидеть, что вы можете сделать с ICompilationUnit.

Если вам нужны дополнительные параметры, вы можете сгенерировать AST вашего ICompilationUnit, используя, например:

CompilationUnit parse(ICompilationUnit unit)
{
    ASTParser parser = ASTParser.newParser(AST.JLS3);
    parser.setKind(ASTParser.K_COMPILATION_UNIT);
    parser.setSource(unit);
    parser.setResolveBindings(true);
    return (CompilationUnit) parser.createAST(null);
}

Обратите внимание, что установка resolveBindings на true стоит дорого, поэтому делайте это только при необходимости. CompilationUnit является корнем вашего AST, который вы можете посетить, используя ASTVisitor . Снова посмотрите предыдущий документ, чтобы увидеть, что вы можете сделать с AST.

Прочитайте документацию онлайн, проверьте API соответствующих типов и попытайтесь найти исходный код некоторых примеров плагинов.

1 голос
/ 02 ноября 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...