]> granicus.if.org Git - clang/commitdiff
clang-format: [JS] Treat regex literals like string literals.
authorDaniel Jasper <djasper@google.com>
Thu, 2 Jul 2015 15:00:44 +0000 (15:00 +0000)
committerDaniel Jasper <djasper@google.com>
Thu, 2 Jul 2015 15:00:44 +0000 (15:00 +0000)
Using the token type "unknown" can interfere badly with
WhitespaceManager's way of handling multiline comments.

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

lib/Format/Format.cpp
unittests/Format/FormatTestJS.cpp

index f97e1fbc6d778b854b82ca4ca970f94b39640a4e..2bbe4c63d156782bb7a21b968d2aadf83e75759f 100644 (file)
@@ -808,6 +808,8 @@ private:
         Tokens.resize(Tokens.size() - TokenCount);
         Tokens.back()->Tok.setKind(tok::unknown);
         Tokens.back()->Type = TT_RegexLiteral;
+        // Treat regex literals like other string_literals.
+        Tokens.back()->Tok.setKind(tok::string_literal);
         Tokens.back()->ColumnWidth += LastColumn - I[0]->OriginalColumn;
         return true;
       }
index ef5901e8d69c319e1cd455de8278208d59239d2d..b3e0f68ac3b2bb58efdaba2ef798c9dd0ce7f1bd 100644 (file)
@@ -638,6 +638,10 @@ TEST_F(FormatTestJS, RegexLiteralSpecialCharacters) {
                getGoogleJSStyleWithColumns(15));
   verifyFormat("var regex =  //\n"
                "    /a/;");
+  verifyFormat("var regexs = [\n"
+               "  /d/,   //\n"
+               "  /aa/,  //\n"
+               "];");
 }
 
 TEST_F(FormatTestJS, RegexLiteralModifiers) {