我刚刚开始开发eclipse插件,请原谅我,如果这是一个简单的问题,但我正在开发一个插件,其中第一步包括分析Java应用程序的源代码和提取新方法。
我的插件确定要提取的语句序列。我想使用 ExtractMethodAction (http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fui%2Factions%2Fpackage-summary.html)。
请注意,我的插件会恢复一系列语句(http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FStatement.html),而不是 ITextSelection ,它是类<运行的方法的参数 ExtractMethodAction 即可。此外, ExtractMethodAction 的构造函数具有参数 JavaEditor ,我不知道如何为 ICompilationUnit创建 JavaEditor
这是我的插件执行方法的一部分:
public Object execute(ExecutionEvent event) throws ExecutionException {
IWorkspace workspace= ResourcesPlugin.getWorkspace();
IWorkspaceRoot root = workspace.getRoot();
IProject [] projects = root.getProjects();
for(IProject project: projects){
IJavaProject javaProject = JavaCore.create(project);
try {
IPackageFragment [] packages =javaProject.getPackageFragments();
for (IPackageFragment mypackage: packages){
if (mypackage.getKind() == IPackageFragmentRoot.K_SOURCE){
ICompilationUnit[] units = mypackage.getCompilationUnits();
for (ICompilationUnit unit: units){
Parser myparser = new Parser();
CompilationUnit cu= myparser.parse(unit);
...
}
}
}
这就是我尝试使用ExtractMethodAction的方式:
JavaEditor edit;
ExtractMethodAction act= new ExtractMethodAction(edit);
ITextSelection select;
act.run(select);
请注意,我不知道如何初始化 JavaEditor 和 ITextSelection 。
如果可能,请帮助我使用 ExtractMethodAction ,或者告诉我是否可以更好地开发自己的代码。非常感谢你。