プログラムで編集しているファイルに対して、プログラムで「OrganizeImports」を実行しようとしています。私のコードは次のようになります。
final ICommandService cmdService = (ICommandService)PlatformUI.getWorkbench().getService (ICommandService.class);
if (cmdService != null) {
final Command cmd = cmdService.getCommand(IJavaEditorActionDefinitionIds.ORGANIZE_IMPORTS);
final ExecutionEvent execEvt = new ExecutionEvent(cmd, Collections.EMPTY_MAP, compileationUnit, null);
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
ResourcesPlugin.getWorkspace().
Display.getDefault().syncExec(new Runnable() {
@Override
public void run() {
try {
//cmd.executeWithChecks(execEvt);
cmd.execute(execEvt);
} catch (Exception e) {
getLogger().severe("organize imports failed: " + e.getMessage());
}
}
私の問題は、OrganizeImportsAction が編集中のコンパイル ユニットとは異なる現在の選択に対して実行されることです。コンパイル単位でプログラムで選択を設定したいのですが、その方法がわかりません。または、OrganizeImports をトリガーする別の方法があるかもしれません。
ありがとう、ステファン