以编程方式调用组织导入

Ste*_*oka 8 eclipse selection eclipse-jdt

我正在尝试以编程方式对我正在编辑的文件执行'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());
                }
            }
Run Code Online (Sandbox Code Playgroud)

我的问题是OrganizeImportsAction在当前选择上执行,这与我正在编辑的编译单元不同.我想在编译单元上以编程方式设置选择,但我不知道如何做到这一点.或者可能还有另一种触发OrganizeImports的方法.

谢谢,斯特凡