Intellij Plugin Development 添加事件侦听器,所以当我按 esc 键时,所有行荧光笔都会消失

Intelij Plugin Development add eventListener so when i press esc all line highlighters disappear

我有这个代码

private static void highlightElement(int lineNum,Project project,VirtualFile virtualFile) {

    final FileEditorManager editorManager =
            FileEditorManager.getInstance(project);
    final Editor editor = editorManager.getSelectedTextEditor();
    final TextAttributes textattributes = new TextAttributes(null, new Color(239, 43, 18), null, EffectType.LINE_UNDERSCORE, Font.PLAIN);
    editor.getMarkupModel().addLineHighlighter(lineNum, HighlighterLayer.CARET_ROW, textattributes);
    editor.getMarkupModel().
    final WindowManager windowManager = WindowManager.getInstance();
    final StatusBar statusBar = windowManager.getStatusBar(project);
    statusBar.setInfo("Press Esc to remove highlighting");
}

代码按预期工作,但我想要的是附加一个事件侦听器,因此当我按 esc 键时,函数 editor.getMarkupModel().removeAllHighlighters();会called.Thank你提前!

不要通过 MarkupModel.getLineHighlighter() 添加荧光笔,而是使用 HighlightManager.addRangeHighlight()。然后当用户按下 Esc 时它们将被自动删除;你不需要做任何额外的事情。