@@ -1506,121 +1506,11 @@ TEST_F(FormatTestJS, StringLiteralConcatenation) {
1506
1506
verifyFormat (" var literal = 'hello ' +\n "
1507
1507
" 'world';" );
1508
1508
1509
- // Long strings should be broken .
1509
+ // String breaking is disabled for now .
1510
1510
verifyFormat (" var literal =\n "
1511
- " 'xxxxxxxx ' +\n "
1512
- " 'xxxxxxxx';" ,
1511
+ " 'xxxxxxxx xxxxxxxx';" ,
1513
1512
" var literal = 'xxxxxxxx xxxxxxxx';" ,
1514
1513
getGoogleJSStyleWithColumns (17 ));
1515
- verifyFormat (" var literal =\n "
1516
- " 'xxxxxxxx ' +\n "
1517
- " 'xxxxxxxx';" ,
1518
- " var literal = 'xxxxxxxx xxxxxxxx';" ,
1519
- getGoogleJSStyleWithColumns (18 ));
1520
- verifyFormat (" var literal =\n "
1521
- " 'xxxxxxxx' +\n "
1522
- " ' xxxxxxxx';" ,
1523
- " var literal = 'xxxxxxxx xxxxxxxx';" ,
1524
- getGoogleJSStyleWithColumns (16 ));
1525
- // The quotes should be correct.
1526
- for (char OriginalQuote : {' \' ' , ' "' }) {
1527
- auto VerifyQuotes = [=](FormatStyle::JavaScriptQuoteStyle StyleQuote,
1528
- char TargetQuote) {
1529
- auto Style = getGoogleJSStyleWithColumns (17 );
1530
- Style.JavaScriptQuotes = StyleQuote;
1531
- std::string Target{" var literal =\n "
1532
- " \" xxxxxxxx \" +\n "
1533
- " \" xxxxxxxx\" ;" };
1534
- std::string Original{" var literal = \" xxxxxxxx xxxxxxxx\" ;" };
1535
- std::replace (Target.begin (), Target.end (), ' "' , TargetQuote);
1536
- std::replace (Original.begin (), Original.end (), ' "' , OriginalQuote);
1537
- verifyFormat (Target, Original, Style);
1538
- };
1539
- VerifyQuotes (FormatStyle::JSQS_Leave, OriginalQuote);
1540
- VerifyQuotes (FormatStyle::JSQS_Single, ' \' ' );
1541
- VerifyQuotes (FormatStyle::JSQS_Double, ' "' );
1542
- }
1543
- // Parentheses should be added when necessary.
1544
- verifyFormat (" var literal =\n "
1545
- " ('xxxxxxxx ' +\n "
1546
- " 'xxxxxx')[0];" ,
1547
- " var literal = 'xxxxxxxx xxxxxx'[0];" ,
1548
- getGoogleJSStyleWithColumns (18 ));
1549
- auto Style = getGoogleJSStyleWithColumns (20 );
1550
- Style.SpacesInParens = FormatStyle::SIPO_Custom;
1551
- Style.SpacesInParensOptions .Other = true ;
1552
- verifyFormat (" var literal =\n "
1553
- " ( 'xxxxxxxx ' +\n "
1554
- " 'xxxxxx' )[0];" ,
1555
- " var literal = 'xxxxxxxx xxxxxx'[0];" , Style);
1556
- // FIXME: When the part before the string literal is shorter than the
1557
- // continuation indentation, and the option AlignAfterOpenBracket is set to
1558
- // AlwaysBreak which is the default for the Google style, the unbroken string
1559
- // does not get to a new line while the broken string does due to the added
1560
- // parentheses. The formatter does not do it in one pass.
1561
- EXPECT_EQ (
1562
- " x = ('xxxxxxxx ' +\n "
1563
- " 'xxxxxx')[0];" ,
1564
- format (" x = 'xxxxxxxx xxxxxx'[0];" , getGoogleJSStyleWithColumns (18 )));
1565
- verifyFormat (" x =\n "
1566
- " ('xxxxxxxx ' +\n "
1567
- " 'xxxxxx')[0];" ,
1568
- getGoogleJSStyleWithColumns (18 ));
1569
- // Breaking of template strings and regular expressions is not implemented.
1570
- verifyFormat (" var literal =\n "
1571
- " `xxxxxxxx xxxxxxxx`;" ,
1572
- getGoogleJSStyleWithColumns (18 ));
1573
- verifyFormat (" var literal =\n "
1574
- " /xxxxxxxx xxxxxxxx/;" ,
1575
- getGoogleJSStyleWithColumns (18 ));
1576
- // There can be breaks in the code inside a template string.
1577
- verifyFormat (" var literal = `xxxxxx ${\n "
1578
- " xxxxxxxxxx} xxxxxx`;" ,
1579
- " var literal = `xxxxxx ${xxxxxxxxxx} xxxxxx`;" ,
1580
- getGoogleJSStyleWithColumns (14 ));
1581
- verifyFormat (" var literal = `xxxxxx ${\n "
1582
- " xxxxxxxxxx} xxxxxx`;" ,
1583
- " var literal = `xxxxxx ${xxxxxxxxxx} xxxxxx`;" ,
1584
- getGoogleJSStyleWithColumns (15 ));
1585
- // Identifiers inside the code inside a template string should not be broken
1586
- // even if the column limit is exceeded. This following behavior is not
1587
- // optimal. The part after the closing brace which exceeds the column limit
1588
- // can be put on a new line. Change this test when it is implemented.
1589
- verifyFormat (" var literal = `xxxxxx ${\n "
1590
- " xxxxxxxxxxxxxxxxxxxxxx} xxxxxx`;" ,
1591
- " var literal = `xxxxxx ${xxxxxxxxxxxxxxxxxxxxxx} xxxxxx`;" ,
1592
- getGoogleJSStyleWithColumns (14 ));
1593
- verifyFormat (" var literal = `xxxxxx ${\n "
1594
- " xxxxxxxxxxxxxxxxxxxxxx +\n "
1595
- " xxxxxxxxxxxxxxxxxxxxxx} xxxxxx`;" ,
1596
- " var literal = `xxxxxx ${xxxxxxxxxxxxxxxxxxxxxx + "
1597
- " xxxxxxxxxxxxxxxxxxxxxx} xxxxxx`;" ,
1598
- getGoogleJSStyleWithColumns (14 ));
1599
-
1600
- // Strings in a TypeScript type declaration can't be broken.
1601
- verifyFormat (" type x =\n "
1602
- " 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';" ,
1603
- getGoogleJSStyleWithColumns (20 ));
1604
- verifyFormat (" /* type */ type x =\n "
1605
- " 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';" ,
1606
- getGoogleJSStyleWithColumns (20 ));
1607
- verifyFormat (" export type x =\n "
1608
- " 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';" ,
1609
- getGoogleJSStyleWithColumns (20 ));
1610
- // Dictionary keys can't be broken. Values can be broken.
1611
- verifyFormat (" var w = {\n "
1612
- " 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx':\n "
1613
- " 'xxxxxxxxxx' +\n "
1614
- " 'xxxxxxxxxx' +\n "
1615
- " 'xxxxxxxxxx' +\n "
1616
- " 'xxxxxxxxxx' +\n "
1617
- " 'xxx',\n "
1618
- " };" ,
1619
- " var w = {\n "
1620
- " 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx':\n "
1621
- " 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',\n "
1622
- " };" ,
1623
- getGoogleJSStyleWithColumns (20 ));
1624
1514
}
1625
1515
1626
1516
TEST_F (FormatTestJS, RegexLiteralClassification) {
0 commit comments