@@ -77,6 +77,17 @@ private final class TokenStreamCreator: SyntaxVisitor {
77
77
afterMap [ tok, default: [ ] ] . append ( tokens)
78
78
}
79
79
80
+ private func insertToken< Node: Collection > (
81
+ _ token: Token ,
82
+ betweenChildrenOf collectionNode: Node
83
+ ) where Node. Element: Syntax , Node. Index == Int {
84
+ if collectionNode. count > 0 {
85
+ for i in 0 ..< ( collectionNode. count - 1 ) {
86
+ after ( collectionNode [ i] . lastToken, tokens: token)
87
+ }
88
+ }
89
+ }
90
+
80
91
override func visitPre( _ node: Syntax ) { }
81
92
82
93
override func visit( _ node: DeclNameArgumentsSyntax ) {
@@ -99,13 +110,14 @@ private final class TokenStreamCreator: SyntaxVisitor {
99
110
super. visit ( node)
100
111
}
101
112
113
+ override func visit( _ node: TupleElementListSyntax ) {
114
+ insertToken ( . break, betweenChildrenOf: node)
115
+ super. visit ( node)
116
+ }
117
+
102
118
override func visit( _ node: TupleElementSyntax ) {
103
119
before ( node. firstToken, tokens: . open)
104
- if let trailingComma = node. trailingComma {
105
- after ( trailingComma, tokens: . close, . break)
106
- } else {
107
- after ( node. lastToken, tokens: . close)
108
- }
120
+ after ( node. lastToken, tokens: . close)
109
121
super. visit ( node)
110
122
}
111
123
@@ -119,6 +131,17 @@ private final class TokenStreamCreator: SyntaxVisitor {
119
131
super. visit ( node)
120
132
}
121
133
134
+ override func visit( _ node: ArrayElementListSyntax ) {
135
+ insertToken ( . break, betweenChildrenOf: node)
136
+ super. visit ( node)
137
+ }
138
+
139
+ override func visit( _ node: ArrayElementSyntax ) {
140
+ before ( node. firstToken, tokens: . open)
141
+ after ( node. lastToken, tokens: . close)
142
+ super. visit ( node)
143
+ }
144
+
122
145
override func visit( _ node: DictionaryExprSyntax ) {
123
146
after (
124
147
node. leftSquare,
@@ -129,6 +152,11 @@ private final class TokenStreamCreator: SyntaxVisitor {
129
152
super. visit ( node)
130
153
}
131
154
155
+ override func visit( _ node: DictionaryElementListSyntax ) {
156
+ insertToken ( . break, betweenChildrenOf: node)
157
+ super. visit ( node)
158
+ }
159
+
132
160
override func visit( _ node: DictionaryTypeSyntax ) {
133
161
after ( node. colon, tokens: . space)
134
162
super. visit ( node)
@@ -137,11 +165,7 @@ private final class TokenStreamCreator: SyntaxVisitor {
137
165
override func visit( _ node: DictionaryElementSyntax ) {
138
166
before ( node. firstToken, tokens: . open)
139
167
after ( node. colon, tokens: . break( offset: 2 ) )
140
- if let trailingComma = node. trailingComma {
141
- after ( trailingComma, tokens: . close, . break)
142
- } else {
143
- after ( node. lastToken, tokens: . close)
144
- }
168
+ after ( node. lastToken, tokens: . close)
145
169
super. visit ( node)
146
170
}
147
171
@@ -398,11 +422,7 @@ private final class TokenStreamCreator: SyntaxVisitor {
398
422
}
399
423
400
424
override func visit( _ node: CodeBlockSyntax ) {
401
- if node. statements. count > 0 {
402
- for i in 0 ..< ( node. statements. count - 1 ) {
403
- after ( node. statements [ i] . lastToken, tokens: . newline)
404
- }
405
- }
425
+ insertToken ( . newline, betweenChildrenOf: node. statements)
406
426
super. visit ( node)
407
427
}
408
428
@@ -441,9 +461,7 @@ private final class TokenStreamCreator: SyntaxVisitor {
441
461
override func visit( _ node: SwitchCaseSyntax ) {
442
462
before ( node. firstToken, tokens: . open)
443
463
after ( node. label. lastToken, tokens: . newline( offset: 2 ) , . open( . consistent, 0 ) )
444
- for i in 0 ..< ( node. statements. count - 1 ) {
445
- after ( node. statements [ i] . lastToken, tokens: . newline)
446
- }
464
+ insertToken ( . newline, betweenChildrenOf: node. statements)
447
465
after ( node. lastToken, tokens: . break( offset: - 2 ) , . close, . close)
448
466
super. visit ( node)
449
467
}
@@ -757,16 +775,6 @@ private final class TokenStreamCreator: SyntaxVisitor {
757
775
super. visit ( node)
758
776
}
759
777
760
- override func visit( _ node: ArrayElementSyntax ) {
761
- before ( node. firstToken, tokens: . open)
762
- if let trailingComma = node. trailingComma {
763
- after ( trailingComma, tokens: . close, . break)
764
- } else {
765
- after ( node. lastToken, tokens: . close)
766
- }
767
- super. visit ( node)
768
- }
769
-
770
778
override func visit( _ node: ContinueStmtSyntax ) {
771
779
super. visit ( node)
772
780
}
0 commit comments