Закрыть всплывающее меню Quick Fix - PullRequest
0 голосов
/ 30 октября 2018

Я расширил org.eclipse.ui.texteditor.ruler.actions при возникновении события RulerClick, чтобы вызвать команду QuickFix org.eclipse.jdt.ui.edit.text.java.correction.assist.proposals:

public class MarkerClickAction extends AbstractRulerActionDelegate {
    @Override
    protected IAction createAction(ITextEditor editor, IVerticalRulerInfo rulerInfo) {
        moveCarretToClickedLine(editor, rulerInfo);
        runQuickFixCommand(editor);
        return null;
    }

    private void runQuickFixCommand(ITextEditor editor) {
        IHandlerService handlerService = (IHandlerService) editor.getSite().getService(IHandlerService.class);

        try {
            handlerService.executeCommand("org.eclipse.jdt.ui.edit.text.java.correction.assist.proposals", null);
        } catch (Exception ex) {
            // handle error
        }
    }
}

В первый раз, когда я нажимаю на маркер, каретка перемещается в нужную строку и появляется всплывающее меню Quick Fix.
Если я снова нажму на другой маркер, каретка переместится на правую линию, но предыдущее меню Quick Fix не закрывается и не открывается для текущей строки.

Что такое id во всплывающем меню Quick Fix, поэтому я могу закрыть его одним из решений из этого вопроса ?
Или есть другой способ добиться того, что я пытаюсь?

...