Как выделить одну строку, содержащую определенный PsiElement программно в Intellij IDEA?
Я знаю, как выделить PsiElement, но как это сделать для одной строки? Я хочу выделить исходный код Java в моем плагине, как это делают тестовые покрытия.
1 ответ
Решение
Используйте этот код в потоке пользовательского интерфейса, может достичь цели.
int lineNum = document.getLineNumber(needHighlightPsiElement.getTextRange().getStartOffset());
final TextAttributes textattributes = new TextAttributes(null, backgroundColor, null, EffectType.LINE_UNDERSCORE, Font.PLAIN);
final Project project = needHighlightPsiElement.getProject();
final FileEditorManager editorManager = FileEditorManager.getInstance(project);
final Editor editor = editorManager.getSelectedTextEditor();
editor.getMarkupModel().addLineHighlighter(lineNum, HighlighterLayer.CARET_ROW, textattributes);