]> granicus.if.org Git - clang/commitdiff
clang-format: [JS] respect clang-format off when requoting strings.
authorMartin Probst <martin@probst.io>
Thu, 12 May 2016 11:20:32 +0000 (11:20 +0000)
committerMartin Probst <martin@probst.io>
Thu, 12 May 2016 11:20:32 +0000 (11:20 +0000)
Reviewers: djasper

Subscribers: klimek, cfe-commits

Differential Revision: http://reviews.llvm.org/D20200

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

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

index efcecee1401c7a91c8a441981fea0b3d3864193d..66077d8832b9334b0950c8a11fbb6e8d4a3faf9e 100644 (file)
@@ -1652,7 +1652,7 @@ private:
       for (FormatToken *FormatTok = Line->First; FormatTok;
            FormatTok = FormatTok->Next) {
         StringRef Input = FormatTok->TokenText;
-        if (!FormatTok->isStringLiteral() ||
+        if (FormatTok->Finalized || !FormatTok->isStringLiteral() ||
             // NB: testing for not starting with a double quote to avoid
             // breaking
             // `template strings`.
index 95fd2e7bb08c065d3e075651831a6fc7382414f1..72d8948bb7a4a7a6a6f816ace99fd031b3d02650 100644 (file)
@@ -1236,6 +1236,14 @@ TEST_F(FormatTestJS, RequoteStringsSingle) {
   // Code below fits into 15 chars *after* removing the \ escape.
   verifyFormat("var x = 'fo\"o';", "var x = \"fo\\\"o\";",
                getGoogleJSStyleWithColumns(15));
+  verifyFormat("// clang-format off\n"
+               "let x = \"double\";\n"
+               "// clang-format on\n"
+               "let x = 'single';\n",
+               "// clang-format off\n"
+               "let x = \"double\";\n"
+               "// clang-format on\n"
+               "let x = \"single\";\n");
 }
 
 TEST_F(FormatTestJS, RequoteStringsDouble) {