From db67345437d0da12f13731d68faf141e50414e30 Mon Sep 17 00:00:00 2001 From: Andrey Vokin Date: Tue, 18 Sep 2018 15:51:25 +0200 Subject: [PATCH] Introduce method DocumentUtil#getIndent added test --- .../src/com/intellij/util/DocumentUtil.java | 6 +++--- .../openapi/editor/DocumentUtilTest.java | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 platform/platform-tests/testSrc/com/intellij/openapi/editor/DocumentUtilTest.java diff --git a/platform/core-impl/src/com/intellij/util/DocumentUtil.java b/platform/core-impl/src/com/intellij/util/DocumentUtil.java index 2df37e06ba38..22b86a70a35c 100644 --- a/platform/core-impl/src/com/intellij/util/DocumentUtil.java +++ b/platform/core-impl/src/com/intellij/util/DocumentUtil.java @@ -146,9 +146,9 @@ public final class DocumentUtil { /** * Calculates indent of the line containing {@code offset} - * @return amount of characters in indent + * @return Whitespaces at the beginning of the line */ - public static int getIndent(@NotNull Document document, int offset) { + public static CharSequence getIndent(@NotNull Document document, int offset) { int lineOffset = getLineStartOffset(offset, document); int result = 0; while (lineOffset + result < document.getTextLength() && @@ -158,6 +158,6 @@ public final class DocumentUtil { if (result + lineOffset > document.getTextLength()) { result--; } - return Math.max(result, 0); + return document.getCharsSequence().subSequence(lineOffset, lineOffset + Math.max(result, 0)); } } diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/editor/DocumentUtilTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/editor/DocumentUtilTest.java new file mode 100644 index 000000000000..07b8e735c952 --- /dev/null +++ b/platform/platform-tests/testSrc/com/intellij/openapi/editor/DocumentUtilTest.java @@ -0,0 +1,17 @@ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package com.intellij.openapi.editor; + +import com.intellij.openapi.editor.impl.DocumentImpl; +import com.intellij.util.DocumentUtil; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class DocumentUtilTest { + @Test + public void testGetIndent() { + final Document doc = new DocumentImpl("line1\n" + + " \t line2"); + assertEquals(" \t ", DocumentUtil.getIndent(doc, doc.getTextLength() - 1).toString()); + } +}