diff options
author | Liam Miller-Cushon <cushon@google.com> | 2023-10-27 11:00:13 -0700 |
---|---|---|
committer | google-java-format Team <google-java-format-dev+copybara@google.com> | 2023-10-27 11:00:53 -0700 |
commit | 295e7a43f8a84d31c9e39fd853c8c4e52f586240 (patch) | |
tree | 2e79fefd0b1380c891637c14817cb291355ed033 | |
parent | 685a6c9ebd43aab9ef458379de7d3883bfee970f (diff) | |
download | google-java-format-295e7a43f8a84d31c9e39fd853c8c4e52f586240.tar.gz |
Don't try to reflow text blocks
Fixes https://github.com/google/google-java-format/issues/976
PiperOrigin-RevId: 577249036
-rw-r--r-- | core/src/main/java/com/google/googlejavaformat/java/StringWrapper.java | 5 | ||||
-rw-r--r-- | core/src/test/java/com/google/googlejavaformat/java/StringWrapperTest.java | 21 |
2 files changed, 26 insertions, 0 deletions
diff --git a/core/src/main/java/com/google/googlejavaformat/java/StringWrapper.java b/core/src/main/java/com/google/googlejavaformat/java/StringWrapper.java index d801c9b..f241ae4 100644 --- a/core/src/main/java/com/google/googlejavaformat/java/StringWrapper.java +++ b/core/src/main/java/com/google/googlejavaformat/java/StringWrapper.java @@ -15,6 +15,7 @@ package com.google.googlejavaformat.java; import static com.google.common.collect.Iterables.getLast; +import static java.lang.Math.min; import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.stream.Collectors.joining; @@ -122,6 +123,10 @@ public final class StringWrapper { if (literalTree.getKind() != Kind.STRING_LITERAL) { return null; } + int pos = getStartPosition(literalTree); + if (input.substring(pos, min(input.length(), pos + 3)).equals("\"\"\"")) { + return null; + } Tree parent = getCurrentPath().getParentPath().getLeaf(); if (parent instanceof MemberSelectTree && ((MemberSelectTree) parent).getExpression().equals(literalTree)) { diff --git a/core/src/test/java/com/google/googlejavaformat/java/StringWrapperTest.java b/core/src/test/java/com/google/googlejavaformat/java/StringWrapperTest.java index 99e1b2f..f7be369 100644 --- a/core/src/test/java/com/google/googlejavaformat/java/StringWrapperTest.java +++ b/core/src/test/java/com/google/googlejavaformat/java/StringWrapperTest.java @@ -15,6 +15,7 @@ package com.google.googlejavaformat.java; import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assume.assumeTrue; import com.google.common.base.Joiner; import org.junit.Test; @@ -52,6 +53,26 @@ public class StringWrapperTest { assertThat(StringWrapper.wrap(100, input, new Formatter())).isEqualTo(output); } + @Test + public void textBlock() throws Exception { + assumeTrue(Runtime.version().feature() >= 15); + String input = + lines( + "package com.mypackage;", + "public class ReproBug {", + " private String myString;", + " private ReproBug() {", + " String str =", + " \"\"\"", + " " + + " {\"sourceEndpoint\":\"ri.something.1-1.object-internal.1\",\"targetEndpoint\":\"ri.some" + + "thing.1-1.object-internal.2\",\"typeId\":\"typeId\"}\"\"\";", + " myString = str;", + " }", + "}"); + assertThat(StringWrapper.wrap(100, input, new Formatter())).isEqualTo(input); + } + private static String lines(String... line) { return Joiner.on('\n').join(line) + '\n'; } |