Вызов организует импорт программно

Я пытаюсь выполнить '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.

спасибо, stefan

8
задан Kai 4 April 2012 в 10:05
поделиться

1 ответ

Может быть этот тест ui.org.eclipse.jdt.ui.tests.quickfix.CleanUpTest класс может дать некоторую подсказку.
Он основан на методе enable в ui.org.eclipse.jdt.ui.tests.quickfix.CleanUpTestCase и на org .eclipse.ltk.core.refactoring.PerformChangeOperation класс .

Вы можете увидеть, как PerformChangeOperation вызывается в классе org.eclipse.ltk.ui.refactoring.RefactoringWizard .

1
ответ дан 6 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: