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 时它们将被自动删除;你不需要做任何额外的事情。
我有这个代码
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 时它们将被自动删除;你不需要做任何额外的事情。