List<TextRange> (@NotNull PsiElement e, @NotNull CharSequence editorText, int cursorOffset, @NotNull Editor editor) { List<TextRange> result = super.select(e, editorText, cursorOffset, editor); PsiElement[] children = e.getChildren(); PsiElement first = null; PsiElement last = null; for (PsiElement child : children) { if (child instanceof XmlToken token) { if (token.getTokenType() == XmlTokenType.XML_CDATA_START) { first = token.getNextSibling(); } if (token.getTokenType() == XmlTokenType.XML_CDATA_END) { last = token.getPrevSibling(); break; } } } if (first != null && last != null) { result.addAll(expandToWholeLine(editorText, new TextRange(first.getTextRange().getStartOffset(), last.getTextRange().getEndOffset()), false)); } return result; }