特定のクリーンアッププロファイル(ソース - >クリーンアップ)をプログラムで呼び出す方法はありますか?プログラムでEclipse Clean-Upプロファイルを呼び出す方法は?
私はICompilationUnitsのiterableでそれを呼び出すと思います。
特定のクリーンアッププロファイル(ソース - >クリーンアップ)をプログラムで呼び出す方法はありますか?プログラムでEclipse Clean-Upプロファイルを呼び出す方法は?
私はICompilationUnitsのiterableでそれを呼び出すと思います。
私はorg.eclise.jdt.ui
の宣言を見ました。
関連コマンドIDはorg.eclipse.jdt.ui.edit.text.java.clean.up
で、実装はorg.eclipse.jdt.internal.ui.actions.AllCleanUpsAction
です。残念ながら、それは内部アクションであり、このコマンドはパラメータをサポートしていません。
私は、次の3つのアプローチを見ることができます:
がAllCleanUpsAction
を作成し、...run(new StructuredSelection(<compilation units>[]))
を呼び出します。問題:このアクションは内部的なものなので、フラグメントを作成してアクセスすることができます。
パッケージのナビゲータービューを開きます。コンパイル単位に対応する適切なファイルを選択します。コマンドIDはIHandlerService.executeCommand("org.eclipse.jdt.ui.edit.text.java.clean.up")
で実行してください。問題:パッケージナビゲータが変更され、ナビゲータにすべてのコンパイル単位が表示されないことがあります。
ビューの現在の選択をnew StructuredSelection(<compilation units>[])
に設定します。上記のようにコマンドを実行します。問題:私は、コマンドが正常に有効になっているかわからない。..
あなたは、そのパラメータの1つとしてのクリーンアップを実行するためにICompilationUnits
の配列をとるRefactoringExecutionStarter.startCleanupRefactoring
を使用することができます。この方法では、実行するICleanUp
を指定することもできます。必要に応じて、クリーンアップウィザードの表示をスキップすることもできます。ここで
は不要な括弧を削除する例を示します
ICleanUp[] cleanUps = new ICleanUp[]{new ExpressionsCleanUp(){
@Override
protected boolean isEnabled(String key){
switch(key){
case CleanUpConstants.EXPRESSIONS_USE_PARENTHESES:
case CleanUpConstants.EXPRESSIONS_USE_PARENTHESES_NEVER:
return true;
case CleanUpConstants.EXPRESSIONS_USE_PARENTHESES_ALWAYS:
return false;
default:
return super.isEnabled(key);
}
}
}};
ICompilationUnit[] icus = new ICompilationUnit[]{icu};
Shell shell = HandlerUtil.getActiveEditor(event).getSite().getShell();
try {
RefactoringExecutionStarter.startCleanupRefactoring(
icus, cleanUps, false, shell, false, ActionMessages.CleanUpAction_actionName);
} catch (InvocationTargetException e) {
throw new AssertionError(e);
}