我可以通过编程调用任何Eclipse重构API吗?

我需要广泛地重构代码。我知道可以从Eclipse IDE内部重构类。但是我可以在Java项目中使用任何API,以便通过代码动态重构项目吗?


我需要一些有关如何实现以下目标的想法:一个程序,该程序调用所有Eclipse重构以重命名和循环移动,以一次重构整个项目!


我不想通过扩展重构类来引入新的重构类型。我只想以编程方式调用它们。

回答:

    RefactoringStatus status = new RefactoringStatus();

IWorkspace workspace = ResourcesPlugin.getWorkspace();

IWorkspaceRoot root = workspace.getRoot();

IProject[] projects = root.getProjects();

for (ICompilationUnit unit : mypackage.getCompilationUnits()) {

IType primary = unit.findPrimaryType();

IMethod[] methods = primary.getMethods();

int i = 1;

for (IMethod method : methods) {

if (method.isConstructor()) {

continue;

}

makeChangetoMethods(status, method,"changedMethodVersion_" + i);

++i;

}

}

IProgressMonitor monitor = new NullProgressMonitor();

status = new RefactoringStatus();

Refactoring refactoring = performMethodsRefactoring(status, methodToRename, newName);

Change change = refactoring.createChange(monitor);

change.perform(monitor);

String id = IJavaRefactorings.RENAME_METHOD;

RefactoringContribution contrib = RefactoringCore.getRefactoringContribution(id);

RenameJavaElementDescriptor desc = contrib.createDescriptor();

desc.setUpdateReferences(true);

desc.setJavaElement(methodToRename);

desc.setNewName(newName);

desc.createRefactoring(status);

以上是 我可以通过编程调用任何Eclipse重构API吗? 的全部内容, 来源链接: utcz.com/qa/397855.html

回到顶部