Skip to content

Commit 4b76a66

Browse files
committed
Use Trivia(joining:) in SyntaxCollections
We've introduced `Trivia(joining: [Trivia], separator: [Trivia])` to generate doc comments from multiple pieces, and already use this approach in `SyntaxNodesFile` for nodes themselves, and for node children documentation. This commit switches from joining pieces manually to using `Trivia(joining:)` in `SyntaxCollectionsFile` so that we use the same approach everywhere.
1 parent b4fbbd9 commit 4b76a66

File tree

3 files changed

+7
-13
lines changed

3 files changed

+7
-13
lines changed

CodeGeneration/Sources/SyntaxSupport/GrammarGenerator.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ struct GrammarGenerator {
7070
/// token.
7171
static func childTokenChoices(for choices: [TokenChoice]) -> String {
7272
let grammar = GrammarGenerator()
73-
73+
7474
if choices.count == 1 {
7575
return """
7676
### Tokens

CodeGeneration/Sources/SyntaxSupport/Utils.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,16 @@ extension SwiftSyntax.Trivia {
5858
return SwiftSyntax.Trivia(pieces: pieces)
5959
}
6060

61-
6261
/// Make a new trivia by joining together ``SwiftSyntax/TriviaPiece``s from `joining`,
6362
/// and gluing them together with pieces from `separator`.
6463
public init(
6564
joining items: [SwiftSyntax.Trivia],
66-
separator: SwiftSyntax.Trivia = SwiftSyntax.Trivia(pieces: [TriviaPiece.newlines(1), TriviaPiece.docLineComment("///"), TriviaPiece.newlines(1)])) {
65+
separator: SwiftSyntax.Trivia = SwiftSyntax.Trivia(pieces: [TriviaPiece.newlines(1), TriviaPiece.docLineComment("///"), TriviaPiece.newlines(1)])
66+
) {
6767

6868
self.init(
69-
pieces: items
69+
pieces:
70+
items
7071
.filter { !$0.isEmpty }
7172
.joined(separator: separator)
7273
)

CodeGeneration/Sources/generate-swift-syntax/templates/swiftsyntax/SyntaxCollectionsFile.swift

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,11 @@ import Utils
1717

1818
let syntaxCollectionsFile = SourceFileSyntax(leadingTrivia: copyrightHeader) {
1919
for node in SYNTAX_NODES.compactMap(\.collectionNode) {
20-
let documentationSections = [
20+
let documentation = SwiftSyntax.Trivia(joining: [
2121
node.documentation,
2222
node.grammar,
2323
node.containedIn,
24-
]
25-
26-
let documentation =
27-
documentationSections
28-
.filter { !$0.isEmpty }
29-
.map { [$0] }
30-
.joined(separator: [Trivia.newline, Trivia.docLineComment("///"), Trivia.newline])
31-
.reduce(Trivia(), +)
24+
])
3225

3326
try! StructDeclSyntax(
3427
"""

0 commit comments

Comments
 (0)