From 26aea361f01efc6a0baeb840ca7b941490e2e2be Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Thu, 29 Sep 2022 11:57:00 +0200 Subject: [PATCH] [java-inspections] TextBlockMigration: properly escape ending space GitOrigin-RevId: 8cbd99ecf3b4b9c068e30317e930eae150a007d9 --- .../codeInspection/TextBlockMigrationInspection.java | 6 +++++- .../afterConcatenationWithSpacesInTheEnd.java | 2 +- .../textBlockMigration/afterTrailingSpaces.java | 12 ++++++++++++ .../textBlockMigration/afterTrailingSpaces2.java | 12 ++++++++++++ .../textBlockMigration/beforeTrailingSpaces.java | 11 +++++++++++ .../textBlockMigration/beforeTrailingSpaces2.java | 11 +++++++++++ 6 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 java/java-tests/testData/inspection/textBlockMigration/afterTrailingSpaces.java create mode 100644 java/java-tests/testData/inspection/textBlockMigration/afterTrailingSpaces2.java create mode 100644 java/java-tests/testData/inspection/textBlockMigration/beforeTrailingSpaces.java create mode 100644 java/java-tests/testData/inspection/textBlockMigration/beforeTrailingSpaces2.java diff --git a/java/java-impl-inspections/src/com/intellij/codeInspection/TextBlockMigrationInspection.java b/java/java-impl-inspections/src/com/intellij/codeInspection/TextBlockMigrationInspection.java index 979360f8a2a0..8b9fcd79aff0 100644 --- a/java/java-impl-inspections/src/com/intellij/codeInspection/TextBlockMigrationInspection.java +++ b/java/java-impl-inspections/src/com/intellij/codeInspection/TextBlockMigrationInspection.java @@ -142,7 +142,11 @@ public class TextBlockMigrationInspection extends AbstractBaseJavaLocalInspectio // append \ + newline at the end of the last line, so we can use closing """ to indent lines[lines.length - 1] += "\\\n"; } - return "\"\"\"\n" + StringUtil.join(lines) + "\"\"\""; + String content = StringUtil.join(lines); + if (content.endsWith(" ")) { + content = content.substring(0, content.length() - 1) + "\\s"; + } + return "\"\"\"\n" + content + "\"\"\""; } private static String @Nullable [] getContentLines(PsiExpression @NotNull [] operands) { diff --git a/java/java-tests/testData/inspection/textBlockMigration/afterConcatenationWithSpacesInTheEnd.java b/java/java-tests/testData/inspection/textBlockMigration/afterConcatenationWithSpacesInTheEnd.java index f95fbf141d76..0fc9ebb62c23 100644 --- a/java/java-tests/testData/inspection/textBlockMigration/afterConcatenationWithSpacesInTheEnd.java +++ b/java/java-tests/testData/inspection/textBlockMigration/afterConcatenationWithSpacesInTheEnd.java @@ -7,7 +7,7 @@ class TextBlockMigration { \s - """; + \s"""; } } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/textBlockMigration/afterTrailingSpaces.java b/java/java-tests/testData/inspection/textBlockMigration/afterTrailingSpaces.java new file mode 100644 index 000000000000..727fdd80cc4d --- /dev/null +++ b/java/java-tests/testData/inspection/textBlockMigration/afterTrailingSpaces.java @@ -0,0 +1,12 @@ +// "Replace with text block" "true-preview" + +class TextBlockMigration { + + void spaces() { + String foobarbaz = """ + foo + bar \s + baz \s"""; + } + +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/textBlockMigration/afterTrailingSpaces2.java b/java/java-tests/testData/inspection/textBlockMigration/afterTrailingSpaces2.java new file mode 100644 index 000000000000..8786b43cd6d2 --- /dev/null +++ b/java/java-tests/testData/inspection/textBlockMigration/afterTrailingSpaces2.java @@ -0,0 +1,12 @@ +// "Replace with text block" "true-preview" + +class TextBlockMigration { + + void spaces() { + String foobarbaz = """ + foo + bar + \s"""; + } + +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/textBlockMigration/beforeTrailingSpaces.java b/java/java-tests/testData/inspection/textBlockMigration/beforeTrailingSpaces.java new file mode 100644 index 000000000000..46c7d080b644 --- /dev/null +++ b/java/java-tests/testData/inspection/textBlockMigration/beforeTrailingSpaces.java @@ -0,0 +1,11 @@ +// "Replace with text block" "true-preview" + +class TextBlockMigration { + + void spaces() { + String foobarbaz = "foo\n" + + "bar \n" + + "baz "; + } + +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/textBlockMigration/beforeTrailingSpaces2.java b/java/java-tests/testData/inspection/textBlockMigration/beforeTrailingSpaces2.java new file mode 100644 index 000000000000..a09b51e7de9c --- /dev/null +++ b/java/java-tests/testData/inspection/textBlockMigration/beforeTrailingSpaces2.java @@ -0,0 +1,11 @@ +// "Replace with text block" "true-preview" + +class TextBlockMigration { + + void spaces() { + String foobarbaz = "foo\n" + + "bar\n" + + " "; + } + +} \ No newline at end of file