clang-format: Re-enable comment re-indentation for Java/JS.
authorDaniel Jasper <djasper@google.com>
Sun, 4 Jan 2015 09:11:17 +0000 (09:11 +0000)
committerDaniel Jasper <djasper@google.com>
Sun, 4 Jan 2015 09:11:17 +0000 (09:11 +0000)
This was broken by r224120.

llvm-svn: 225130

clang/lib/Format/ContinuationIndenter.cpp
clang/unittests/Format/FormatTestJava.cpp

index b50a9a9..53876ba 100644 (file)
@@ -905,12 +905,6 @@ unsigned ContinuationIndenter::addMultilineToken(const FormatToken &Current,
 unsigned ContinuationIndenter::breakProtrudingToken(const FormatToken &Current,
                                                     LineState &State,
                                                     bool DryRun) {
-  // FIXME: String literal breaking is currently disabled for Java and JS, as
-  // it requires strings to be merged using "+" which we don't support.
-  if (Style.Language == FormatStyle::LK_Java ||
-      Style.Language == FormatStyle::LK_JavaScript)
-    return 0;
-
   // Don't break multi-line tokens other than block comments. Instead, just
   // update the state.
   if (Current.isNot(TT_BlockComment) && Current.IsMultiline)
@@ -929,6 +923,12 @@ unsigned ContinuationIndenter::breakProtrudingToken(const FormatToken &Current,
   unsigned ColumnLimit = getColumnLimit(State);
 
   if (Current.isStringLiteral()) {
+    // FIXME: String literal breaking is currently disabled for Java and JS, as
+    // it requires strings to be merged using "+" which we don't support.
+    if (Style.Language == FormatStyle::LK_Java ||
+        Style.Language == FormatStyle::LK_JavaScript)
+      return 0;
+
     // Don't break string literals inside preprocessor directives (except for
     // #define directives, as their contents are stored in separate lines and
     // are not affected by this check).
index d80cccd..b4f67af 100644 (file)
@@ -425,5 +425,18 @@ TEST_F(FormatTestJava, BreaksStringLiterals) {
             format("\"some text other\";", getStyleWithColumns(14)));
 }
 
+TEST_F(FormatTestJava, AlignsBlockComments) {
+  EXPECT_EQ("/*\n"
+            " * Really multi-line\n"
+            " * comment.\n"
+            " */\n"
+            "void f() {}",
+            format("  /*\n"
+                   "   * Really multi-line\n"
+                   "   * comment.\n"
+                   "   */\n"
+                   "  void f() {}"));
+}
+
 } // end namespace tooling
 } // end namespace clang