Как выделить одну строку, содержащую определенный 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);
Другие вопросы по тегам