@@ -213,6 +213,13 @@ private final class TokenStreamCreator: SyntaxVisitor {
213
213
}
214
214
215
215
override func visit( _ node: EnumDeclSyntax ) {
216
+ if let attributes = node. attributes {
217
+ before ( node. firstToken, tokens: . space( size: 0 ) , . open( . consistent, 0 ) )
218
+ after ( attributes. lastToken, tokens: . open)
219
+ } else {
220
+ before ( node. firstToken, tokens: . space( size: 0 ) , . open( . consistent, 0 ) , . open)
221
+ }
222
+
216
223
after ( node. enumKeyword, tokens: . break)
217
224
218
225
before (
@@ -224,7 +231,10 @@ private final class TokenStreamCreator: SyntaxVisitor {
224
231
if node. genericWhereClause == nil {
225
232
before ( node. members. leftBrace, tokens: . break)
226
233
}
227
- after ( node. members. leftBrace, tokens: . break( size: 0 , offset: 2 ) , . open( . consistent, 0 ) )
234
+ after (
235
+ node. members. leftBrace,
236
+ tokens: . close, . close, . break( size: 0 , offset: 2 ) , . open( . consistent, 0 )
237
+ )
228
238
before ( node. members. rightBrace, tokens: . break( size: 0 , offset: - 2 ) , . close)
229
239
230
240
super. visit ( node)
@@ -429,6 +439,26 @@ private final class TokenStreamCreator: SyntaxVisitor {
429
439
}
430
440
431
441
override func visit( _ node: AttributeSyntax ) {
442
+ if node. balancedTokens. count > 0 {
443
+ for i in 0 ..< ( node. balancedTokens. count - 1 ) {
444
+ let tokens = node. balancedTokens
445
+ switch ( tokens [ i] . tokenKind, tokens [ i+ 1 ] . tokenKind) {
446
+ case ( . leftParen, _) : ( )
447
+ case ( _, . rightParen) : ( )
448
+ case ( _, . comma) : ( )
449
+ case ( _, . colon) : ( )
450
+ default :
451
+ after ( tokens [ i] , tokens: . space)
452
+ }
453
+ }
454
+ after ( node. balancedTokens. lastToken, tokens: . newline)
455
+ } else {
456
+ if node. parent? . parent is ImportDeclSyntax {
457
+ after ( node. lastToken, tokens: . space)
458
+ } else {
459
+ after ( node. lastToken, tokens: . break)
460
+ }
461
+ }
432
462
super. visit ( node)
433
463
}
434
464
@@ -437,6 +467,13 @@ private final class TokenStreamCreator: SyntaxVisitor {
437
467
}
438
468
439
469
override func visit( _ node: ClassDeclSyntax ) {
470
+ if let attributes = node. attributes {
471
+ before ( node. firstToken, tokens: . space( size: 0 ) , . open( . consistent, 0 ) )
472
+ after ( attributes. lastToken, tokens: . open)
473
+ } else {
474
+ before ( node. firstToken, tokens: . space( size: 0 ) , . open( . consistent, 0 ) , . open)
475
+ }
476
+
440
477
after ( node. classKeyword, tokens: . break)
441
478
442
479
before (
@@ -448,7 +485,10 @@ private final class TokenStreamCreator: SyntaxVisitor {
448
485
if node. genericWhereClause == nil {
449
486
before ( node. members. leftBrace, tokens: . break)
450
487
}
451
- after ( node. members. leftBrace, tokens: . break( size: 0 , offset: 2 ) , . open( . consistent, 0 ) )
488
+ after (
489
+ node. members. leftBrace,
490
+ tokens: . close, . close, . break( size: 0 , offset: 2 ) , . open( . consistent, 0 )
491
+ )
452
492
before ( node. members. rightBrace, tokens: . break( size: 0 , offset: - 2 ) , . close)
453
493
454
494
super. visit ( node)
@@ -522,7 +562,6 @@ private final class TokenStreamCreator: SyntaxVisitor {
522
562
}
523
563
524
564
override func visit( _ node: ImportDeclSyntax ) {
525
- after ( node. attributes? . lastToken, tokens: . space)
526
565
after ( node. importTok, tokens: . space)
527
566
after ( node. importKind, tokens: . space)
528
567
super. visit ( node)
@@ -536,6 +575,13 @@ private final class TokenStreamCreator: SyntaxVisitor {
536
575
}
537
576
538
577
override func visit( _ node: StructDeclSyntax ) {
578
+ if let attributes = node. attributes {
579
+ before ( node. firstToken, tokens: . space( size: 0 ) , . open( . consistent, 0 ) )
580
+ after ( attributes. lastToken, tokens: . open)
581
+ } else {
582
+ before ( node. firstToken, tokens: . space( size: 0 ) , . open( . consistent, 0 ) , . open)
583
+ }
584
+
539
585
after ( node. structKeyword, tokens: . break)
540
586
541
587
before (
@@ -548,7 +594,10 @@ private final class TokenStreamCreator: SyntaxVisitor {
548
594
if node. genericWhereClause == nil {
549
595
before ( node. members. leftBrace, tokens: . break)
550
596
}
551
- after ( node. members. leftBrace, tokens: . break( size: 0 , offset: 2 ) , . open( . consistent, 0 ) )
597
+ after (
598
+ node. members. leftBrace,
599
+ tokens: . close, . close, . break( size: 0 , offset: 2 ) , . open( . consistent, 0 )
600
+ )
552
601
before ( node. members. rightBrace, tokens: . break( size: 0 , offset: - 2 ) , . close)
553
602
554
603
super. visit ( node)
@@ -605,6 +654,13 @@ private final class TokenStreamCreator: SyntaxVisitor {
605
654
}
606
655
607
656
override func visit( _ node: FunctionDeclSyntax ) {
657
+ if let attributes = node. attributes {
658
+ before ( node. firstToken, tokens: . space( size: 0 ) , . open( . consistent, 0 ) )
659
+ after ( attributes. lastToken, tokens: . open)
660
+ } else {
661
+ before ( node. firstToken, tokens: . space( size: 0 ) , . open( . consistent, 0 ) , . open)
662
+ }
663
+
608
664
after ( node. funcKeyword, tokens: . break)
609
665
610
666
before (
@@ -617,7 +673,7 @@ private final class TokenStreamCreator: SyntaxVisitor {
617
673
if node. genericWhereClause == nil {
618
674
before ( body. leftBrace, tokens: . break)
619
675
}
620
- after ( body. leftBrace, tokens: . break( offset: 2 ) , . open( . consistent, 0 ) )
676
+ after ( body. leftBrace, tokens: . close , . close , . break( offset: 2 ) , . open( . consistent, 0 ) )
621
677
before ( body. rightBrace, tokens: . break( offset: - 2 ) , . close)
622
678
}
623
679
@@ -657,8 +713,13 @@ private final class TokenStreamCreator: SyntaxVisitor {
657
713
}
658
714
659
715
override func visit( _ node: VariableDeclSyntax ) {
660
- before ( node. firstToken, tokens: . open( . inconsistent, 0 ) )
661
- after ( node. lastToken, tokens: . close)
716
+ if let attributes = node. attributes {
717
+ before ( node. firstToken, tokens: . space( size: 0 ) , . open( . consistent, 0 ) )
718
+ after ( attributes. lastToken, tokens: . open)
719
+ } else {
720
+ before ( node. firstToken, tokens: . space( size: 0 ) , . open( . consistent, 0 ) , . open)
721
+ }
722
+ after ( node. lastToken, tokens: . close, . close)
662
723
after ( node. letOrVarKeyword, tokens: . break)
663
724
super. visit ( node)
664
725
}
@@ -668,6 +729,13 @@ private final class TokenStreamCreator: SyntaxVisitor {
668
729
}
669
730
670
731
override func visit( _ node: ExtensionDeclSyntax ) {
732
+ if let attributes = node. attributes {
733
+ before ( node. firstToken, tokens: . space( size: 0 ) , . open( . consistent, 0 ) )
734
+ after ( attributes. lastToken, tokens: . open)
735
+ } else {
736
+ before ( node. firstToken, tokens: . space( size: 0 ) , . open( . consistent, 0 ) , . open)
737
+ }
738
+
671
739
after ( node. extensionKeyword, tokens: . break)
672
740
673
741
before (
@@ -679,7 +747,10 @@ private final class TokenStreamCreator: SyntaxVisitor {
679
747
if node. genericWhereClause == nil {
680
748
before ( node. members. leftBrace, tokens: . break)
681
749
}
682
- after ( node. members. leftBrace, tokens: . break( size: 0 , offset: 2 ) , . open( . consistent, 0 ) )
750
+ after (
751
+ node. members. leftBrace,
752
+ tokens: . close, . close, . break( size: 0 , offset: 2 ) , . open( . consistent, 0 )
753
+ )
683
754
before ( node. members. rightBrace, tokens: . break( size: 0 , offset: - 2 ) , . close)
684
755
685
756
super. visit ( node)
0 commit comments