我正在编写一个Eclipse插件,它应该在Java编辑器中修改源代码。 如何计算源部分的位置,如
等等。
答案 0 :(得分: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();
阅读Manipulating Java code,了解使用ICompilationUnit
可以做些什么。
如果您想要更多选项,可以使用例如:{/ p>生成ICompilationUnit
的AST
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访问它。再看看previous文档,看看你可以用AST做什么。
在线阅读文档,检查所涉及类型的API,并尝试查找一些示例插件的源代码。
答案 1 :(得分:1)
您想要修改Abstract Syntax Tree(AST)。