]> granicus.if.org Git - clang/commitdiff
clang-format: Fix alignment of ObjC string literals.
authorDaniel Jasper <djasper@google.com>
Sat, 9 Nov 2013 03:08:25 +0000 (03:08 +0000)
committerDaniel Jasper <djasper@google.com>
Sat, 9 Nov 2013 03:08:25 +0000 (03:08 +0000)
This used to interfere with AlwaysBreakBeforeMultilineStrings.

This fixes llvm.org/PR17856.

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

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

index 1f6c8693d683393a3ff3b63a776ffc5805ca4181..4e1417cf4dfa7e343fdd63b78006a17ced499e6c 100644 (file)
@@ -135,7 +135,7 @@ bool ContinuationIndenter::mustBreak(const LineState &State) {
     return true;
   if (Style.AlwaysBreakBeforeMultilineStrings &&
       State.Column > State.Stack.back().Indent && // Breaking saves columns.
-      !Previous.isOneOf(tok::kw_return, tok::lessless) &&
+      !Previous.isOneOf(tok::kw_return, tok::lessless, tok::at) &&
       Previous.Type != TT_InlineASMColon && NextIsMultilineString(State))
     return true;
   if (((Previous.Type == TT_DictLiteral && Previous.is(tok::l_brace)) ||
index e37f0cd4eb9008b3235d7678df23390b8ea3fb2b..d02fb3405c7dda93b2f4860640f4116c54566aad 100644 (file)
@@ -3636,6 +3636,13 @@ TEST_F(FormatTest, AlwaysBreakBeforeMultilineStrings) {
                    "b\\\n"
                    "c\";",
                    Break));
+
+  // Exempt ObjC strings for now.
+  EXPECT_EQ("NSString *const kString = @\"aaaa\"\n"
+            "                           \"bbbb\";",
+            format("NSString *const kString = @\"aaaa\"\n"
+                   "\"bbbb\";",
+                   Break));
 }
 
 TEST_F(FormatTest, AlignsPipes) {