diff --git a/java/java-psi-api/src/com/intellij/psi/util/PsiLiteralUtil.java b/java/java-psi-api/src/com/intellij/psi/util/PsiLiteralUtil.java index 48418e1775ad..afd1351369d9 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/PsiLiteralUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/PsiLiteralUtil.java @@ -738,11 +738,14 @@ public final class PsiLiteralUtil { return null; } - private static int findLineSuffixLength(@NotNull String line, boolean last) { - if (last) return 0; - int lastIdx = line.length() - 1; - for (int i = lastIdx; i >= 0; i--) if (!Character.isWhitespace(line.charAt(i))) return lastIdx - i; - return 0; + private static int findLineSuffixLength(@NotNull String line) { + int end = line.length(); + while (true) { + int offset = parseWhitespaceBackwards(line, end - 1); + if (offset < 0) break; + end = offset; + } + return line.length() - end; } private static @Nullable TextBlockModel create(@NotNull String text, int indent) { diff --git a/java/java-tests/testSrc/com/intellij/psi/util/MapBackTextBlockTextRangeTest.java b/java/java-tests/testSrc/com/intellij/psi/util/MapBackTextBlockTextRangeTest.java index 864559cfa862..099aa75a5670 100644 --- a/java/java-tests/testSrc/com/intellij/psi/util/MapBackTextBlockTextRangeTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/util/MapBackTextBlockTextRangeTest.java @@ -34,9 +34,9 @@ public class MapBackTextBlockTextRangeTest extends LightPlatformCodeInsightTestC doTest(""" ""\" \s - foo \t\f + foo \t\f\\uu0020 \s - ""\"""", 0, 6, new TextRange(9, 24), "\n foo \t\f\n \n"); + ""\"""", 0, 6, new TextRange(9, 31), "\n foo \t\f\\uu0020\n \n"); } public void testIndentNonZero() {