我可以通过编程调用任何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