Skip to content

Commit e17bb5e

Browse files
duailibesuchipi
authored andcommitted
Break nested ternaries (#4120)
1 parent 74ad001 commit e17bb5e

2 files changed

Lines changed: 30 additions & 12 deletions

File tree

src/language-js/printer-estree.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,8 @@ function formatTernaryOperator(path, options, print, operatorOptions) {
189189
operatorName: "ConditionalExpression",
190190
consequentNode: "consequent",
191191
alternateNode: "alternate",
192-
testNode: "test"
192+
testNode: "test",
193+
breakNested: true
193194
},
194195
operatorOptions || {}
195196
);
@@ -277,11 +278,11 @@ function formatTernaryOperator(path, options, print, operatorOptions) {
277278
);
278279
}
279280

280-
// In JSX mode, we want a whole chain of ConditionalExpressions to all
281+
// We want a whole chain of ConditionalExpressions to all
281282
// break if any of them break. That means we should only group around the
282283
// outer-most ConditionalExpression.
283284
const maybeGroup = doc =>
284-
jsxMode
285+
operatorOpts.breakNested
285286
? parent === firstNonConditionalParent ? group(doc) : doc
286287
: group(doc); // Always group in normal mode.
287288

@@ -2945,7 +2946,8 @@ function printPathNoParens(path, options, print, args) {
29452946
operatorName: "TSConditionalType",
29462947
consequentNode: "trueType",
29472948
alternateNode: "falseType",
2948-
testNode: "checkType"
2949+
testNode: "checkType",
2950+
breakNested: false
29492951
});
29502952

29512953
case "TSInferType":

tests/ternaries/__snapshots__/jsfmt.spec.js.snap

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,9 @@ aaaaaaaaaaaaaaa
313313
? bbbbbbbbbbbbbbbbbb
314314
: ccccccccccccccc
315315
? ddddddddddddddd
316-
: eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg;
316+
: eeeeeeeeeeeeeee
317+
? fffffffffffffff
318+
: gggggggggggggggg;
317319
318320
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
319321
? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -633,7 +635,9 @@ aaaaaaaaaaaaaaa
633635
? bbbbbbbbbbbbbbbbbb
634636
: ccccccccccccccc
635637
? ddddddddddddddd
636-
: eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg;
638+
: eeeeeeeeeeeeeee
639+
? fffffffffffffff
640+
: gggggggggggggggg;
637641
638642
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
639643
? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -953,7 +957,9 @@ aaaaaaaaaaaaaaa
953957
? bbbbbbbbbbbbbbbbbb
954958
: ccccccccccccccc
955959
? ddddddddddddddd
956-
: eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg;
960+
: eeeeeeeeeeeeeee
961+
? fffffffffffffff
962+
: gggggggggggggggg;
957963
958964
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
959965
? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -1273,7 +1279,9 @@ aaaaaaaaaaaaaaa
12731279
? bbbbbbbbbbbbbbbbbb
12741280
: ccccccccccccccc
12751281
? ddddddddddddddd
1276-
: eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg;
1282+
: eeeeeeeeeeeeeee
1283+
? fffffffffffffff
1284+
: gggggggggggggggg;
12771285
12781286
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
12791287
? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -1482,7 +1490,9 @@ a => a ? aasdasdasdasdasdasdaaasdasdasdasdasdasdasdasdasdasdasdasdasdaaaaaa : a
14821490
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14831491
debug ? (this.state.isVisible ? "partially visible" : "hidden") : null;
14841492
debug
1485-
? this.state.isVisible && somethingComplex ? "partially visible" : "hidden"
1493+
? this.state.isVisible && somethingComplex
1494+
? "partially visible"
1495+
: "hidden"
14861496
: null;
14871497
14881498
a =>
@@ -1509,7 +1519,9 @@ a => a ? aasdasdasdasdasdasdaaasdasdasdasdasdasdasdasdasdasdasdasdasdaaaaaa : a
15091519
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15101520
debug ? (this.state.isVisible ? "partially visible" : "hidden") : null;
15111521
debug
1512-
? this.state.isVisible && somethingComplex ? "partially visible" : "hidden"
1522+
? this.state.isVisible && somethingComplex
1523+
? "partially visible"
1524+
: "hidden"
15131525
: null;
15141526
15151527
a =>
@@ -1536,7 +1548,9 @@ a => a ? aasdasdasdasdasdasdaaasdasdasdasdasdasdasdasdasdasdasdasdasdaaaaaa : a
15361548
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15371549
debug ? (this.state.isVisible ? "partially visible" : "hidden") : null;
15381550
debug
1539-
? this.state.isVisible && somethingComplex ? "partially visible" : "hidden"
1551+
? this.state.isVisible && somethingComplex
1552+
? "partially visible"
1553+
: "hidden"
15401554
: null;
15411555
15421556
a =>
@@ -1563,7 +1577,9 @@ a => a ? aasdasdasdasdasdasdaaasdasdasdasdasdasdasdasdasdasdasdasdasdaaaaaa : a
15631577
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15641578
debug ? (this.state.isVisible ? "partially visible" : "hidden") : null;
15651579
debug
1566-
? this.state.isVisible && somethingComplex ? "partially visible" : "hidden"
1580+
? this.state.isVisible && somethingComplex
1581+
? "partially visible"
1582+
: "hidden"
15671583
: null;
15681584
15691585
a =>

0 commit comments

Comments
 (0)