TextRange (@NotNull TextRange initialRange, @NotNull Document document) { CharSequence text = document.getCharsSequence(); String ws = " \t"; int startLine = document.getLineNumber(initialRange.getStartOffset()); int lineStartOffset = document.getLineStartOffset(startLine); int i = CharArrayUtil.shiftBackward(text, lineStartOffset + 1, initialRange.getStartOffset() - 1, ws); if (i != lineStartOffset) { return initialRange; } int endLine = document.getLineNumber(initialRange.getEndOffset()); int lineEndOffset = document.getLineEndOffset(endLine); i = CharArrayUtil.shiftForward(text, initialRange.getEndOffset(), lineEndOffset, ws); return i == lineEndOffset ? TextRange.create(lineStartOffset, lineEndOffset) : initialRange; }