Skip to content

Commit df40ff8

Browse files
authored
Merge pull request #300 from ahoppen/pr/dont-drop-leading-trivia
[SwiftSyntaxBuilder] Don't drop existing leading trivia when adding indentation trivia
2 parents e45ef8c + 1de9466 commit df40ff8

File tree

3 files changed

+244
-241
lines changed

3 files changed

+244
-241
lines changed

Sources/SwiftSyntaxBuilder/Buildables.swift.gyb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public struct ${node.syntax_kind}: ${node.base_kind}Buildable {
120120
% for child in node.children:
121121
% param_expr = child.swift_name
122122
% if child.is_token() and child.requires_leading_newline:
123-
% param_expr = param_expr + '.withLeadingTrivia(.newlines(1) + format._makeIndent())'
123+
% param_expr = param_expr + '.withLeadingTrivia(.newlines(1) + format._makeIndent() + (' + param_expr + '.leadingTrivia ?? []))'
124124
% elif child.syntax_kind in SYNTAX_BASE_KINDS or not child.is_token():
125125
% if child.is_optional:
126126
% param_expr = param_expr + "?"
@@ -138,7 +138,7 @@ public struct ${node.syntax_kind}: ${node.base_kind}Buildable {
138138
)
139139

140140
if let leadingTrivia = leadingTrivia {
141-
return ${node.swift_syntax_kind}.withLeadingTrivia(leadingTrivia)
141+
return ${node.swift_syntax_kind}.withLeadingTrivia(leadingTrivia + (${node.swift_syntax_kind}.leadingTrivia ?? []))
142142
}
143143

144144
return ${node.swift_syntax_kind}
@@ -189,7 +189,7 @@ public struct ${node.syntax_kind}: SyntaxBuildable {
189189
let ${node.swift_syntax_kind} = build${node.syntax_kind}(format: format)
190190

191191
if let leadingTrivia = leadingTrivia {
192-
return Syntax(${node.swift_syntax_kind}).withLeadingTrivia(leadingTrivia)
192+
return Syntax(${node.swift_syntax_kind}).withLeadingTrivia(leadingTrivia + (${node.swift_syntax_kind}.leadingTrivia ?? []))
193193
}
194194

195195
return Syntax(${node.swift_syntax_kind})

0 commit comments

Comments
 (0)