Я расширил 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, поэтому я могу закрыть его одним из решений из этого вопроса ?
Или есть другой способ добиться того, что я пытаюсь?