]> granicus.if.org Git - clang/commitdiff
clang-format: Don't force linebreak between return and multiline string.
authorDaniel Jasper <djasper@google.com>
Fri, 18 Oct 2013 16:47:55 +0000 (16:47 +0000)
committerDaniel Jasper <djasper@google.com>
Fri, 18 Oct 2013 16:47:55 +0000 (16:47 +0000)
This looks ugly and leads to llvm.org/PR17590.

Before (with AlwaysBreakBeforeMultilineStrings):
  return
      "aaaa"
      "bbbb";

After:
  return "aaaa"
         "bbbb";

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192984 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/ContinuationIndenter.cpp
unittests/Format/FormatTest.cpp

index b0bd13b69a39bf354c493a553ba0642cf7f7d4b1..0cf9e32ea84c733cbd99c32b1f40ca4fb67e3d08 100644 (file)
@@ -133,8 +133,8 @@ bool ContinuationIndenter::mustBreak(const LineState &State) {
     return true;
   if (Style.AlwaysBreakBeforeMultilineStrings &&
       State.Column > State.Stack.back().Indent && // Breaking saves columns.
-      Previous.isNot(tok::lessless) && Previous.Type != TT_InlineASMColon &&
-      NextIsMultilineString(State))
+      !Previous.isOneOf(tok::kw_return, tok::lessless) &&
+      Previous.Type != TT_InlineASMColon && NextIsMultilineString(State))
     return true;
 
   if (!Style.BreakBeforeBinaryOperators) {
index 15d05f5575eef1dbfa9ca84d429d465f8405c3a1..6bcf44c4e8dbbfccc575b6ea97626808b15511f7 100644 (file)
@@ -5590,6 +5590,12 @@ TEST_F(FormatTest, BreakStringLiterals) {
                    "aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa "
                    "aaaaaaaaaaaaaaaaaaaaaa\");",
                    getGoogleStyle()));
+  EXPECT_EQ("return \"aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa \"\n"
+            "       \"aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa\";",
+            format("return \"aaaaaaaaaaaaaaaaaaaaaa "
+                   "aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa "
+                   "aaaaaaaaaaaaaaaaaaaaaa\";",
+                   getGoogleStyle()));
   EXPECT_EQ("llvm::outs() << \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \"\n"
             "                \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\";",
             format("llvm::outs() << "