如何以编程方式调用Eclipse清理概要文件?
是否有一种方法可以通过编程方式调用特定的清理配置文件(源->清理)如何以编程方式调用Eclipse清理概要文件?,eclipse,eclipse-jdt,Eclipse,Eclipse Jdt,是否有一种方法可以通过编程方式调用特定的清理配置文件(源->清理) 我想在一个ICompilationUnits的iterable上调用它。我查看了org.eclise.jdt.ui中的声明 相关的命令ID是org.eclipse.jdt.ui.edit.text.java.clean.up,实现是org.eclipse.jdt.internal.ui.actions.AllCleanUpsAction。不幸的是,这是一个内部操作,该命令不支持任何参数 我可以看到三种可能的方法: 创建AllC
我想在一个ICompilationUnits的iterable上调用它。我查看了org.eclise.jdt.ui中的声明 相关的命令ID是
org.eclipse.jdt.ui.edit.text.java.clean.up
,实现是org.eclipse.jdt.internal.ui.actions.AllCleanUpsAction
。不幸的是,这是一个内部操作,该命令不支持任何参数
我可以看到三种可能的方法:
- 创建
并调用AllCleanUpsAction
。问题:该操作是内部的,因此您可能希望创建一个片段来访问它…run(新结构的选择([]))
- 打开包导航器视图。选择与编译单元对应的适当文件。通过
执行命令ID。问题:包导航器已更改。。。您可能没有在导航器中看到所有的编译单元IHandlerService.executeCommand(“org.eclipse.jdt.ui.edit.text.java.clean.up”)
- 将视图中的当前选择设置为
。然后执行上述命令。问题:我不确定该命令是否正确启用newstructuredselection([])
org.eclipse.jdt.ui.edit.text.java.clean.up
,实现是org.eclipse.jdt.internal.ui.actions.AllCleanUpsAction
。不幸的是,这是一个内部操作,该命令不支持任何参数
我可以看到三种可能的方法:
- 创建
并调用AllCleanUpsAction
。问题:该操作是内部的,因此您可能希望创建一个片段来访问它…run(新结构的选择([]))
- 打开包导航器视图。选择与编译单元对应的适当文件。通过
执行命令ID。问题:包导航器已更改。。。您可能没有在导航器中看到所有的编译单元IHandlerService.executeCommand(“org.eclipse.jdt.ui.edit.text.java.clean.up”)
- 将视图中的当前选择设置为
。然后执行上述命令。问题:我不确定该命令是否正确启用newstructuredselection([])
重构ExecutionStarter.startCleanupRefactoring
,它将ICompilationUnits
数组作为其参数之一来执行清理。此方法还允许您指定要执行的ICleanUp
s,并允许您在需要时跳过显示清理向导
下面是一个删除不必要括号的示例:
ICleanUp[]cleanUps=new-ICleanUp[]{new-expressioncleanup(){
@凌驾
受保护的布尔值isEnabled(字符串键){
开关(钥匙){
大小写清除常量。表达式使用括号:
case CleanUpConstants.EXPRESSIONS\u使用括号\u从不:
返回true;
case CleanUpConstants.EXPRESSIONS\u使用括号\u始终:
返回false;
违约:
返回super.isEnabled(键);
}
}
}};
ICompilationUnit[]icu=新ICompilationUnit[]{icu};
Shell Shell=HandlerUtil.getActiveEditor(事件).getSite().getShell();
试一试{
重构ExecutionStarter.startCleanupRefactoring(
icu、cleanUps、false、shell、false、ActionMessages.CleanUpAction_actionName);
}捕获(调用TargetException e){
抛出新断言错误(e);
}
您可以使用重构ExecutionStarter.startCleanupRefactoring
,它将ICompilationUnits
数组作为其参数之一来执行清理。此方法还允许您指定要执行的ICleanUp
s,并允许您在需要时跳过显示清理向导
下面是一个删除不必要括号的示例:
ICleanUp[]cleanUps=new-ICleanUp[]{new-expressioncleanup(){
@凌驾
受保护的布尔值isEnabled(字符串键){
开关(钥匙){
大小写清除常量。表达式使用括号:
case CleanUpConstants.EXPRESSIONS\u使用括号\u从不:
返回true;
case CleanUpConstants.EXPRESSIONS\u使用括号\u始终:
返回false;
违约:
返回super.isEnabled(键);
}
}
}};
ICompilationUnit[]icu=新ICompilationUnit[]{icu};
Shell Shell=HandlerUtil.getActiveEditor(事件).getSite().getShell();
试一试{
重构ExecutionStarter.startCleanupRefactoring(
icu、cleanUps、false、shell、false、ActionMessages.CleanUpAction_actionName);
}捕获(调用TargetException e){
抛出新断言错误(e);
}