Back out text block special cases

PiperOrigin-RevId: 695363436
diff --git a/core/src/main/java/com/google/googlejavaformat/Input.java b/core/src/main/java/com/google/googlejavaformat/Input.java
index d059111..66a3921 100644
--- a/core/src/main/java/com/google/googlejavaformat/Input.java
+++ b/core/src/main/java/com/google/googlejavaformat/Input.java
@@ -71,11 +71,6 @@
 
     /** Is the {@code Tok} a comment? */
     boolean isComment();
-
-    /** Is the {@code Tok} a text block? */
-    default boolean isTextBlock() {
-      return false;
-    }
   }
 
   /** A {@code Token} is a language-level token. */
diff --git a/core/src/main/java/com/google/googlejavaformat/OpsBuilder.java b/core/src/main/java/com/google/googlejavaformat/OpsBuilder.java
index 008be11..a45e83b 100644
--- a/core/src/main/java/com/google/googlejavaformat/OpsBuilder.java
+++ b/core/src/main/java/com/google/googlejavaformat/OpsBuilder.java
@@ -534,7 +534,7 @@
               space = tokBefore.isSlashStarComment();
               newlines = 0;
               lastWasComment = true;
-              if (tokBefore.isJavadocComment() || token.getTok().isTextBlock()) {
+              if (tokBefore.isJavadocComment()) {
                 tokOps.put(j, Doc.Break.makeForced());
               }
               allowBlankAfterLastComment =
diff --git a/core/src/main/java/com/google/googlejavaformat/java/JavaInput.java b/core/src/main/java/com/google/googlejavaformat/java/JavaInput.java
index 6be39ab..01c6177 100644
--- a/core/src/main/java/com/google/googlejavaformat/java/JavaInput.java
+++ b/core/src/main/java/com/google/googlejavaformat/java/JavaInput.java
@@ -167,11 +167,6 @@
     }
 
     @Override
-    public boolean isTextBlock() {
-      return originalText.startsWith("\"\"\"");
-    }
-
-    @Override
     public String toString() {
       return MoreObjects.toStringHelper(this)
           .add("index", index)
diff --git a/core/src/main/java/com/google/googlejavaformat/java/JavaInputAstVisitor.java b/core/src/main/java/com/google/googlejavaformat/java/JavaInputAstVisitor.java
index af98101..01f9a3e 100644
--- a/core/src/main/java/com/google/googlejavaformat/java/JavaInputAstVisitor.java
+++ b/core/src/main/java/com/google/googlejavaformat/java/JavaInputAstVisitor.java
@@ -70,7 +70,6 @@
 import com.google.googlejavaformat.FormattingError;
 import com.google.googlejavaformat.Indent;
 import com.google.googlejavaformat.Input;
-import com.google.googlejavaformat.Newlines;
 import com.google.googlejavaformat.Op;
 import com.google.googlejavaformat.OpenOp;
 import com.google.googlejavaformat.OpsBuilder;
@@ -1668,15 +1667,6 @@
   public Void visitLiteral(LiteralTree node, Void unused) {
     sync(node);
     String sourceForNode = getSourceForNode(node, getCurrentPath());
-    if (sourceForNode.endsWith("\"\"\"")
-        && (Newlines.hasNewlineAt(sourceForNode, sourceForNode.length() - 4) != -1)) {
-      // If the closing delimiter of a text block starts at the margin, outdent the opening
-      // delimiter as well by adding a break with negative indentation. Outdenting for text blocks
-      // with wide contents is also handled by StringWrapper, but this means the behaviour for
-      // the opening delimiter is consistent if string wrapping is disabled, and also effectively
-      // preserves user choice about which text blocks stay de-indented.
-      builder.breakOp(Indent.Const.make(Integer.MIN_VALUE / indentMultiplier, indentMultiplier));
-    }
     if (isUnaryMinusLiteral(sourceForNode)) {
       token("-");
       sourceForNode = sourceForNode.substring(1).trim();
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 ab4093a..42099d6 100644
--- a/core/src/main/java/com/google/googlejavaformat/java/StringWrapper.java
+++ b/core/src/main/java/com/google/googlejavaformat/java/StringWrapper.java
@@ -190,10 +190,15 @@
     private void indentTextBlocks(
         TreeRangeMap<Integer, String> replacements, List<Tree> textBlocks) {
       for (Tree tree : textBlocks) {
-        int startPosition = lineMap.getStartPosition(lineMap.getLineNumber(getStartPosition(tree)));
+        int startPosition = getStartPosition(tree);
         int endPosition = getEndPosition(unit, tree);
         String text = input.substring(startPosition, endPosition);
-        int startColumn = CharMatcher.whitespace().negate().indexIn(text) + 1;
+        int lineStartPosition = lineMap.getStartPosition(lineMap.getLineNumber(startPosition));
+        int startColumn =
+            CharMatcher.whitespace()
+                    .negate()
+                    .indexIn(input.substring(lineStartPosition, endPosition))
+                + 1;
 
         // Find the source code of the text block with incidental whitespace removed.
         // The first line of the text block is always """, and it does not affect incidental
@@ -210,7 +215,7 @@
                 ? ""
                 : " ".repeat(startColumn - 1);
 
-        StringBuilder output = new StringBuilder(prefix).append(initialLines.get(0).stripLeading());
+        StringBuilder output = new StringBuilder(initialLines.get(0).stripLeading());
         for (int i = 0; i < lines.size(); i++) {
           String line = lines.get(i);
           String trimmed = line.stripLeading().stripTrailing();
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 bc1a933..7854126 100644
--- a/core/src/test/java/com/google/googlejavaformat/java/StringWrapperTest.java
+++ b/core/src/test/java/com/google/googlejavaformat/java/StringWrapperTest.java
@@ -63,7 +63,7 @@
             "  private String myString;",
             "  private ReproBug() {",
             "    String str =",
-            "\"\"\"",
+            "        \"\"\"",
             "{\"sourceEndpoint\":\"ri.something.1-1.object-internal.1\",\"targetEndpoint"
                 + "\":\"ri.something.1-1.object-internal.2\",\"typeId\":\"typeId\"}\\",
             "\"\"\";",
diff --git a/core/src/test/resources/com/google/googlejavaformat/java/testdata/B361077825.output b/core/src/test/resources/com/google/googlejavaformat/java/testdata/B361077825.output
index b407bfe..62344bd 100644
--- a/core/src/test/resources/com/google/googlejavaformat/java/testdata/B361077825.output
+++ b/core/src/test/resources/com/google/googlejavaformat/java/testdata/B361077825.output
@@ -9,7 +9,7 @@
                 # No implicit input file, because they can only be created outside a symbolic macro,
       """;
   String c =
-"""
+      """
            # No implicit input file, because they can only be created outside a symbolic macro,
 """;
 }
diff --git a/core/src/test/resources/com/google/googlejavaformat/java/testdata/B377585941.output b/core/src/test/resources/com/google/googlejavaformat/java/testdata/B377585941.output
index 7f57dfb..bd3107b 100644
--- a/core/src/test/resources/com/google/googlejavaformat/java/testdata/B377585941.output
+++ b/core/src/test/resources/com/google/googlejavaformat/java/testdata/B377585941.output
@@ -1,8 +1,7 @@
 class T {
   {
     f(
-        /* foo */
-        """
+        /* foo */ """
         hello
         """);
   }
diff --git a/core/src/test/resources/com/google/googlejavaformat/java/testdata/RSLs.output b/core/src/test/resources/com/google/googlejavaformat/java/testdata/RSLs.output
index 9993f5a..6e9a3ae 100644
--- a/core/src/test/resources/com/google/googlejavaformat/java/testdata/RSLs.output
+++ b/core/src/test/resources/com/google/googlejavaformat/java/testdata/RSLs.output
@@ -42,13 +42,13 @@
       ipsum
       """;
   String j =
-"""
+      """
 lorem
 one long incredibly unbroken sentence moving from topic to topic so that no one had a chance to interrupt
 ipsum
 """;
   String k =
-"""
+      """
 lorem
 ipsum
 """;
@@ -66,12 +66,10 @@
     """
         .formatted("world");
     f(
-        /* foo= */
-        """
+        /* foo= */ """
         foo
         """,
-        /* bar= */
-        """
+        /* bar= */ """
         bar
         """);
     """
@@ -87,11 +85,10 @@
             bar
             """;
     String t =
-"""
+        """
 foo
 """
-            +
-"""
+            + """
 bar
 """;
     String u =