diff options
Diffstat (limited to 'clang/unittests/Format/FormatTestJS.cpp')
-rw-r--r-- | clang/unittests/Format/FormatTestJS.cpp | 114 |
1 files changed, 2 insertions, 112 deletions
diff --git a/clang/unittests/Format/FormatTestJS.cpp b/clang/unittests/Format/FormatTestJS.cpp index 51543d0..23b010d 100644 --- a/clang/unittests/Format/FormatTestJS.cpp +++ b/clang/unittests/Format/FormatTestJS.cpp @@ -1506,121 +1506,11 @@ TEST_F(FormatTestJS, StringLiteralConcatenation) { verifyFormat("var literal = 'hello ' +\n" " 'world';"); - // Long strings should be broken. + // String breaking is disabled for now. verifyFormat("var literal =\n" - " 'xxxxxxxx ' +\n" - " 'xxxxxxxx';", + " 'xxxxxxxx xxxxxxxx';", "var literal = 'xxxxxxxx xxxxxxxx';", getGoogleJSStyleWithColumns(17)); - verifyFormat("var literal =\n" - " 'xxxxxxxx ' +\n" - " 'xxxxxxxx';", - "var literal = 'xxxxxxxx xxxxxxxx';", - getGoogleJSStyleWithColumns(18)); - verifyFormat("var literal =\n" - " 'xxxxxxxx' +\n" - " ' xxxxxxxx';", - "var literal = 'xxxxxxxx xxxxxxxx';", - getGoogleJSStyleWithColumns(16)); - // The quotes should be correct. - for (char OriginalQuote : {'\'', '"'}) { - auto VerifyQuotes = [=](FormatStyle::JavaScriptQuoteStyle StyleQuote, - char TargetQuote) { - auto Style = getGoogleJSStyleWithColumns(17); - Style.JavaScriptQuotes = StyleQuote; - std::string Target{"var literal =\n" - " \"xxxxxxxx \" +\n" - " \"xxxxxxxx\";"}; - std::string Original{"var literal = \"xxxxxxxx xxxxxxxx\";"}; - std::replace(Target.begin(), Target.end(), '"', TargetQuote); - std::replace(Original.begin(), Original.end(), '"', OriginalQuote); - verifyFormat(Target, Original, Style); - }; - VerifyQuotes(FormatStyle::JSQS_Leave, OriginalQuote); - VerifyQuotes(FormatStyle::JSQS_Single, '\''); - VerifyQuotes(FormatStyle::JSQS_Double, '"'); - } - // Parentheses should be added when necessary. - verifyFormat("var literal =\n" - " ('xxxxxxxx ' +\n" - " 'xxxxxx')[0];", - "var literal = 'xxxxxxxx xxxxxx'[0];", - getGoogleJSStyleWithColumns(18)); - auto Style = getGoogleJSStyleWithColumns(20); - Style.SpacesInParens = FormatStyle::SIPO_Custom; - Style.SpacesInParensOptions.Other = true; - verifyFormat("var literal =\n" - " ( 'xxxxxxxx ' +\n" - " 'xxxxxx' )[0];", - "var literal = 'xxxxxxxx xxxxxx'[0];", Style); - // FIXME: When the part before the string literal is shorter than the - // continuation indentation, and the option AlignAfterOpenBracket is set to - // AlwaysBreak which is the default for the Google style, the unbroken string - // does not get to a new line while the broken string does due to the added - // parentheses. The formatter does not do it in one pass. - EXPECT_EQ( - "x = ('xxxxxxxx ' +\n" - " 'xxxxxx')[0];", - format("x = 'xxxxxxxx xxxxxx'[0];", getGoogleJSStyleWithColumns(18))); - verifyFormat("x =\n" - " ('xxxxxxxx ' +\n" - " 'xxxxxx')[0];", - getGoogleJSStyleWithColumns(18)); - // Breaking of template strings and regular expressions is not implemented. - verifyFormat("var literal =\n" - " `xxxxxxxx xxxxxxxx`;", - getGoogleJSStyleWithColumns(18)); - verifyFormat("var literal =\n" - " /xxxxxxxx xxxxxxxx/;", - getGoogleJSStyleWithColumns(18)); - // There can be breaks in the code inside a template string. - verifyFormat("var literal = `xxxxxx ${\n" - " xxxxxxxxxx} xxxxxx`;", - "var literal = `xxxxxx ${xxxxxxxxxx} xxxxxx`;", - getGoogleJSStyleWithColumns(14)); - verifyFormat("var literal = `xxxxxx ${\n" - " xxxxxxxxxx} xxxxxx`;", - "var literal = `xxxxxx ${xxxxxxxxxx} xxxxxx`;", - getGoogleJSStyleWithColumns(15)); - // Identifiers inside the code inside a template string should not be broken - // even if the column limit is exceeded. This following behavior is not - // optimal. The part after the closing brace which exceeds the column limit - // can be put on a new line. Change this test when it is implemented. - verifyFormat("var literal = `xxxxxx ${\n" - " xxxxxxxxxxxxxxxxxxxxxx} xxxxxx`;", - "var literal = `xxxxxx ${xxxxxxxxxxxxxxxxxxxxxx} xxxxxx`;", - getGoogleJSStyleWithColumns(14)); - verifyFormat("var literal = `xxxxxx ${\n" - " xxxxxxxxxxxxxxxxxxxxxx +\n" - " xxxxxxxxxxxxxxxxxxxxxx} xxxxxx`;", - "var literal = `xxxxxx ${xxxxxxxxxxxxxxxxxxxxxx + " - "xxxxxxxxxxxxxxxxxxxxxx} xxxxxx`;", - getGoogleJSStyleWithColumns(14)); - - // Strings in a TypeScript type declaration can't be broken. - verifyFormat("type x =\n" - " 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';", - getGoogleJSStyleWithColumns(20)); - verifyFormat("/* type */ type x =\n" - " 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';", - getGoogleJSStyleWithColumns(20)); - verifyFormat("export type x =\n" - " 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';", - getGoogleJSStyleWithColumns(20)); - // Dictionary keys can't be broken. Values can be broken. - verifyFormat("var w = {\n" - " 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx':\n" - " 'xxxxxxxxxx' +\n" - " 'xxxxxxxxxx' +\n" - " 'xxxxxxxxxx' +\n" - " 'xxxxxxxxxx' +\n" - " 'xxx',\n" - "};", - "var w = {\n" - " 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx':\n" - " 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',\n" - "};", - getGoogleJSStyleWithColumns(20)); } TEST_F(FormatTestJS, RegexLiteralClassification) { |