Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse插件-查找源部件位置_Java_Eclipse_Eclipse Plugin - Fatal编程技术网

Java Eclipse插件-查找源部件位置

Java Eclipse插件-查找源部件位置,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,我正在编写一个Eclipse插件,它应该在Java编辑器中修改源代码。 如何计算源节的位置,如 类声明 进口 类字段 方法 因此。您要修改(AST) 您要修改(AST) 您需要了解Eclipse中的工作原理 您可以在插件中编写如下内容: IProject project = ResourcesPlugin.getWorkspace().getRoot() .getProject(PROJECT_NAME); IJavaProject javaProject = JavaCore.cr

我正在编写一个Eclipse插件,它应该在Java编辑器中修改源代码。 如何计算源节的位置,如

  • 类声明
  • 进口
  • 类字段
  • 方法

因此。

您要修改(AST)

您要修改(AST)

您需要了解Eclipse中的工作原理

您可以在插件中编写如下内容:

IProject project = ResourcesPlugin.getWorkspace().getRoot()
    .getProject(PROJECT_NAME);
IJavaProject javaProject = JavaCore.create(project);
IType type = project.findType(TYPE_NAME);
ICompilationUnit icu = type.getCompilationUnit();
阅读以了解如何使用
ICompilationUnit

如果需要更多选项,可以使用以下示例生成
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
非常昂贵,因此只能在需要时执行
CompliationUnit
是AST的根目录,您可以使用。再次查看文档以了解如何使用ASTs


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

您需要了解在Eclipse中如何工作

您可以在插件中编写如下内容:

IProject project = ResourcesPlugin.getWorkspace().getRoot()
    .getProject(PROJECT_NAME);
IJavaProject javaProject = JavaCore.create(project);
IType type = project.findType(TYPE_NAME);
ICompilationUnit icu = type.getCompilationUnit();
阅读以了解如何使用
ICompilationUnit

如果需要更多选项,可以使用以下示例生成
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
非常昂贵,因此只能在需要时执行
CompliationUnit
是AST的根目录,您可以使用。再次查看文档以了解如何使用ASTs

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