diff --git a/java/java-impl-inspections/src/com/intellij/codeInspection/TrailingWhitespacesInTextBlockInspection.java b/java/java-impl-inspections/src/com/intellij/codeInspection/TrailingWhitespacesInTextBlockInspection.java
index 58b2363955cc..1aa5448a39de 100644
--- a/java/java-impl-inspections/src/com/intellij/codeInspection/TrailingWhitespacesInTextBlockInspection.java
+++ b/java/java-impl-inspections/src/com/intellij/codeInspection/TrailingWhitespacesInTextBlockInspection.java
@@ -200,13 +200,13 @@ public final class TrailingWhitespacesInTextBlockInspection extends AbstractBase
if (suffix.equals("\\{")) return result.append(line).toString();
line = line.substring(0, line.length() - suffix.length());
}
- String transformed = lineTransformation.apply(line);
+ String transformed = line.isEmpty() ? line : lineTransformation.apply(line);
if (transformed == null) return null;
if (last && hasUnescapedLastQuote(transformed)) {
result.append(transformed, 0, transformed.length() - 1).append("\\\"");
}
else if (transformed.isEmpty()) {
- result.append((line.length() < indent) ? line : " ".repeat(indent));
+ result.append((line.length() < indent) ? line : line.substring(0, indent));
} else {
result.append(transformed);
}
diff --git a/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/EmptyLine.after.java b/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/EmptyLine.after.java
new file mode 100644
index 000000000000..85757f6b40b1
--- /dev/null
+++ b/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/EmptyLine.after.java
@@ -0,0 +1,9 @@
+class EmptyLine {
+
+ void x(int a) {
+ System.out.println(STR."""
+ a\na "\{a}
+
+ \s""");
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/EmptyLine.java b/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/EmptyLine.java
new file mode 100644
index 000000000000..850628fbad3f
--- /dev/null
+++ b/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/EmptyLine.java
@@ -0,0 +1,9 @@
+class EmptyLine {
+
+ void x(int a) {
+ System.out.println(STR."""
+ a\na "\{a}
+
+ """);
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/WithBlankLines.after.java b/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/WithBlankLines.after.java
index c329434fb51c..a6774e3302aa 100644
--- a/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/WithBlankLines.after.java
+++ b/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/WithBlankLines.after.java
@@ -1,12 +1,12 @@
class Foo {
void test() {
String colors = """
-
+
red
-
-
+
+
green
diff --git a/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/WithEndQuotes.after.java b/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/WithEndQuotes.after.java
index 96863469e5ec..8bd4ce7e13aa 100644
--- a/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/WithEndQuotes.after.java
+++ b/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/WithEndQuotes.after.java
@@ -28,5 +28,10 @@ class Foo {
\u005C \"""";
String text14 = """
\u005C\u005C\u005C\u005C\"""";
+ String text15 = STR."""
+ "scary"\{}
+ "scary"\{}
+ "scary" \{}
+ """;
}
}
diff --git a/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/WithEndQuotes.java b/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/WithEndQuotes.java
index 99a9b7ec1693..2ab5820fbfb6 100644
--- a/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/WithEndQuotes.java
+++ b/java/java-tests/testData/inspection/trailingWhitespacesInTextBlock/WithEndQuotes.java
@@ -28,5 +28,10 @@ class Foo {
\u005C " """;
String text14 = """
\u005C\u005C\u005C\u005C" """;
+ String text15 = STR."""
+ "scary"\{}
+ "scary"\{}
+ "scary" \{}
+ """;
}
}
diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/TrailingWhitespacesInTextBlockInspectionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/TrailingWhitespacesInTextBlockInspectionTest.java
index 261f0f2c114a..aab26b0bbc7c 100644
--- a/java/java-tests/testSrc/com/intellij/java/codeInspection/TrailingWhitespacesInTextBlockInspectionTest.java
+++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/TrailingWhitespacesInTextBlockInspectionTest.java
@@ -12,6 +12,7 @@ public class TrailingWhitespacesInTextBlockInspectionTest extends LightJavaInspe
public void testBadTextBlock() { doTest(); }
public void testBlankLine() { doTestAll(); }
+ public void testEmptyLine() { doTestEscape(); }
public void testEmptyLastLine() { doTestAll(); }
public void testOneLineBlock() { doTestAll(); }
public void testReplaceAtTheEnd() { doTestEscape(); }