]> granicus.if.org Git - clang/commitdiff
clang-format: Row back on the AlwaysBreakBeforeMultilineStrings change.
authorDaniel Jasper <djasper@google.com>
Thu, 18 Jun 2015 16:05:17 +0000 (16:05 +0000)
committerDaniel Jasper <djasper@google.com>
Thu, 18 Jun 2015 16:05:17 +0000 (16:05 +0000)
It was a bit too aggressive.

With this patch, we keep on breaking here:
  aaaaaaaaaaaaa(aaaaaaa,
                "aaaaaaa"
                "bbbbbbb");

But don't break in:
  aaaaaaaaaaaaa(aaaaaaaaaaaaaaa("aaaaaaa"
                                  "bbbbbbb"));

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

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

index c41da01256af4b7661f27bab736ac08ba26ab77f..dea622706fefb37e807d1cc9f36535ea0a0711bb 100644 (file)
@@ -169,7 +169,8 @@ bool ContinuationIndenter::mustBreak(const LineState &State) {
     return false;
 
   if (Style.AlwaysBreakBeforeMultilineStrings &&
-      NewLineColumn == State.FirstIndent + Style.ContinuationIndentWidth &&
+      (NewLineColumn == State.FirstIndent + Style.ContinuationIndentWidth ||
+       Previous.is(tok::comma)) &&
       !Previous.isOneOf(tok::kw_return, tok::lessless, tok::at) &&
       !Previous.isOneOf(TT_InlineASMColon, TT_ConditionalExpr) &&
       nextIsMultilineString(State))
index 122a1a6c5f1eac8939461274424ade19b9cd1d66..418b7aceea67232da0a984c15c94b6ba4c3d8574 100644 (file)
@@ -4647,11 +4647,16 @@ TEST_F(FormatTest, AlwaysBreakBeforeMultilineStrings) {
   verifyFormat("aaaa(qqq, \"bbbb\"\n"
                "          \"cccc\");",
                NoBreak);
-  verifyFormat("aaaa(qqq, \"bbbb\"\n"
-               "          \"cccc\");",
+  verifyFormat("aaaa(qqq,\n"
+               "     \"bbbb\"\n"
+               "     \"cccc\");",
+               Break);
+  verifyFormat("aaaa(qqq,\n"
+               "     L\"bbbb\"\n"
+               "     L\"cccc\");",
                Break);
-  verifyFormat("aaaa(qqq, L\"bbbb\"\n"
-               "          L\"cccc\");",
+  verifyFormat("aaaaa(aaaaaa, aaaaaaa(\"aaaa\"\n"
+               "                      \"bbbb\"));",
                Break);
 
   // As we break before unary operators, breaking right after them is bad.