我正在编写一个eclipse插件,它应该在java编辑器中修改源代码。如何计算源代码段的位置类声明进口类字段方法就这样。
pcww981p1#
您需要了解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 .如果您想要更多的选项,您可以生成您的 ICompilationUnit ,例如:
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访问它。再次查看上一个文档,了解如何使用asts。在线阅读文档,检查相关类型的api,并尝试查找一些示例插件的源代码。
resolveBindings
true
CompilationUnit
szqfcxe22#
您想修改抽象语法树(ast)。
2条答案
按热度按时间pcww981p1#
您需要了解jdt在eclipse中是如何工作的。
你可以在一个插件中这样写:
阅读java代码,看看你能用它做些什么
ICompilationUnit
.如果您想要更多的选项,您可以生成您的
ICompilationUnit
,例如:注意,设置
resolveBindings
至true
价格昂贵,所以只在需要时才做。CompilationUnit
是ast的根,您可以使用astvisitor访问它。再次查看上一个文档,了解如何使用asts。在线阅读文档,检查相关类型的api,并尝试查找一些示例插件的源代码。
szqfcxe22#
您想修改抽象语法树(ast)。