Eclipse插件 - 查找源部件位置

Ron*_*nen 1 java eclipse eclipse-plugin

我正在编写一个Eclipse插件,它应该修改Java编辑器中的源代码.我怎样才能确定源部分的位置

  • 班级宣言
  • 进口
  • 类字段
  • 方法

所以.

elj*_*nso 5

您需要了解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();
Run Code Online (Sandbox Code Playgroud)

阅读操作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);
}
Run Code Online (Sandbox Code Playgroud)

请注意,设置resolveBindingstrue价格昂贵,所以只在需要时才这样做.CompilationUnit是AST的根,您可以使用ASTVisitor访问.再看看前面的文档,看看你可以用AST做什么.

在线阅读文档,检查所涉及类型的API,并尝试查找一些示例插件的源代码.