0

我刚刚开始开发 eclipse 插件,如果这是一个简单的问题,请原谅我,但我正在开发一个插件,其中第一步包括分析 Java 应用程序的源代码和提取新方法。

我的插件确定要提取的语句序列。我想使用ExtractMethodActionhttp://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);

请注意,我不知道如何初始化JavaEditorITextSelection

如果可能的话,你能帮我使用ExtractMethodAction吗,或者告诉我开发自己的代码是否更好。非常感谢。

4

0 回答 0