boolean (@NotNull Editor editor, @NotNull TextRange range) { Document document = editor.getDocument(); CharSequence text = document.getImmutableCharSequence(); int startOffset = range.getStartOffset(); int endOffset = range.getEndOffset(); int startLine = document.getLineNumber(startOffset); int endLine = document.getLineNumber(endOffset); if (!CharArrayUtil.containsOnlyWhiteSpaces(text.subSequence(document.getLineStartOffset(startLine), startOffset)) || !CharArrayUtil.containsOnlyWhiteSpaces(text.subSequence(endOffset, document.getLineEndOffset(endLine)))) { return false; } return startLine < endLine || document.getLineStartOffset(startLine) < document.getLineEndOffset(endLine); }