@@ -476,7 +476,11 @@ fileprivate final class TokenStreamCreator: SyntaxVisitor {
476
476
after ( condition. lastToken, tokens: . break( . close( mustBreak: false ) , size: 0 ) )
477
477
}
478
478
479
- arrangeBracesAndContents ( of: node. body, contentsKeyPath: \. statements)
479
+ arrangeBracesAndContents (
480
+ of: node. body,
481
+ contentsKeyPath: \. statements,
482
+ openBraceNewlineBehavior: config. lineBreakBeforeControlFlowBodies ? . hard : . elective
483
+ )
480
484
481
485
if let elseKeyword = node. elseKeyword {
482
486
// Add a token before the else keyword. Breaking before `else` is explicitly allowed when
@@ -498,7 +502,11 @@ fileprivate final class TokenStreamCreator: SyntaxVisitor {
498
502
}
499
503
}
500
504
501
- arrangeBracesAndContents ( of: node. elseBody? . as ( CodeBlockSyntax . self) , contentsKeyPath: \. statements)
505
+ arrangeBracesAndContents (
506
+ of: node. elseBody? . as ( CodeBlockSyntax . self) ,
507
+ contentsKeyPath: \. statements,
508
+ openBraceNewlineBehavior: config. lineBreakBeforeControlFlowBodies ? . hard : . elective
509
+ )
502
510
503
511
return . visitChildren
504
512
}
@@ -537,7 +545,11 @@ fileprivate final class TokenStreamCreator: SyntaxVisitor {
537
545
after ( typeAnnotation. lastToken, tokens: . break( . close( mustBreak: false ) , size: 0 ) )
538
546
}
539
547
540
- arrangeBracesAndContents ( of: node. body, contentsKeyPath: \. statements)
548
+ arrangeBracesAndContents (
549
+ of: node. body,
550
+ contentsKeyPath: \. statements,
551
+ openBraceNewlineBehavior: config. lineBreakBeforeControlFlowBodies ? . hard : . elective
552
+ )
541
553
542
554
return . visitChildren
543
555
}
@@ -559,14 +571,22 @@ fileprivate final class TokenStreamCreator: SyntaxVisitor {
559
571
after ( condition. lastToken, tokens: . break( . close( mustBreak: false ) , size: 0 ) )
560
572
}
561
573
562
- arrangeBracesAndContents ( of: node. body, contentsKeyPath: \. statements)
574
+ arrangeBracesAndContents (
575
+ of: node. body,
576
+ contentsKeyPath: \. statements,
577
+ openBraceNewlineBehavior: config. lineBreakBeforeControlFlowBodies ? . hard : . elective
578
+ )
563
579
564
580
return . visitChildren
565
581
}
566
582
567
583
override func visit( _ node: RepeatWhileStmtSyntax ) -> SyntaxVisitorContinueKind {
568
584
after ( node. labelColon, tokens: . space)
569
- arrangeBracesAndContents ( of: node. body, contentsKeyPath: \. statements)
585
+ arrangeBracesAndContents (
586
+ of: node. body,
587
+ contentsKeyPath: \. statements,
588
+ openBraceNewlineBehavior: config. lineBreakBeforeControlFlowBodies ? . hard : . elective
589
+ )
570
590
571
591
if config. lineBreakBeforeControlFlowKeywords {
572
592
before ( node. whileKeyword, tokens: . break( . same) , . open)
@@ -586,7 +606,11 @@ fileprivate final class TokenStreamCreator: SyntaxVisitor {
586
606
587
607
override func visit( _ node: DoStmtSyntax ) -> SyntaxVisitorContinueKind {
588
608
after ( node. labelColon, tokens: . space)
589
- arrangeBracesAndContents ( of: node. body, contentsKeyPath: \. statements)
609
+ arrangeBracesAndContents (
610
+ of: node. body,
611
+ contentsKeyPath: \. statements,
612
+ openBraceNewlineBehavior: config. lineBreakBeforeControlFlowBodies ? . hard : . elective
613
+ )
590
614
return . visitChildren
591
615
}
592
616
@@ -609,7 +633,11 @@ fileprivate final class TokenStreamCreator: SyntaxVisitor {
609
633
}
610
634
}
611
635
612
- arrangeBracesAndContents ( of: node. body, contentsKeyPath: \. statements)
636
+ arrangeBracesAndContents (
637
+ of: node. body,
638
+ contentsKeyPath: \. statements,
639
+ openBraceNewlineBehavior: config. lineBreakBeforeControlFlowBodies ? . hard : . elective
640
+ )
613
641
614
642
return . visitChildren
615
643
}
0 commit comments