Skip to content

Commit 7b0e51d

Browse files
committed
Fix handling leading trivia
1 parent fe3a245 commit 7b0e51d

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

Sources/SwiftSyntaxBuilder/DeclBuildables.swift

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public struct Import: DeclBuildable {
7171
}
7272

7373
public func buildDecl(format: Format, leadingTrivia: Trivia) -> DeclSyntax {
74-
let importToken = Tokens.import.withLeadingTrivia(leadingTrivia + format.makeIndent())
74+
let importToken = Tokens.import.withLeadingTrivia(leadingTrivia)
7575
let moduleNameToken = SyntaxFactory.makeIdentifier(moduleName)
7676

7777
return ImportDeclSyntax {
@@ -112,8 +112,7 @@ public struct Variable<Mutability: VariableMutability>: DeclBuildable {
112112
}
113113

114114
public func buildDecl(format: Format, leadingTrivia: Trivia) -> DeclSyntax {
115-
let mutabilityKeyword = Mutability.token
116-
.withLeadingTrivia(leadingTrivia + format.makeIndent())
115+
let mutabilityKeyword = Mutability.token.withLeadingTrivia(leadingTrivia)
117116

118117
let nameIdentifier = SyntaxFactory.makeIdentifier(name)
119118
let namePattern = SyntaxFactory.makeIdentifierPattern(identifier: nameIdentifier)
@@ -125,7 +124,7 @@ public struct Variable<Mutability: VariableMutability>: DeclBuildable {
125124
)
126125

127126
let initClause = initializer.flatMap { builder -> InitializerClauseSyntax in
128-
let expr = builder.buildExpr(format: format, leadingTrivia: leadingTrivia)
127+
let expr = builder.buildExpr(format: format, leadingTrivia: .zero)
129128
return SyntaxFactory.makeInitializerClause(equal: Tokens.equal, value: expr)
130129
}
131130

@@ -158,11 +157,11 @@ public struct Struct: DeclBuildable {
158157
}
159158

160159
public func buildDecl(format: Format, leadingTrivia: Trivia) -> DeclSyntax {
161-
let structKeyword = Tokens.struct.withLeadingTrivia(leadingTrivia + format.makeIndent())
160+
let structKeyword = Tokens.struct.withLeadingTrivia(leadingTrivia)
162161

163162
let declList = memberList.buildDeclList(
164163
format: format.indented(),
165-
leadingTrivia: .newlines(1)
164+
leadingTrivia: .zero
166165
)
167166

168167
return StructDeclSyntax {
@@ -172,8 +171,12 @@ public struct Struct: DeclBuildable {
172171
$0.useLeftBrace(Tokens.leftBrace.withLeadingTrivia(.spaces(1)))
173172
$0.useRightBrace(Tokens.rightBrace.withLeadingTrivia(.newlines(1) + format.makeIndent()))
174173

174+
let format = format.indented()
175175
for decl in declList {
176-
$0.addMember(SyntaxFactory.makeMemberDeclListItem(decl: decl, semicolon: nil))
176+
let member = SyntaxFactory
177+
.makeMemberDeclListItem(decl: decl, semicolon: nil)
178+
.withLeadingTrivia(.newlines(1) + format.makeIndent())
179+
$0.addMember(member)
177180
}
178181
})
179182
}

Sources/SwiftSyntaxBuilder/ExprBuildables.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public struct IntegerLiteral: ExprBuildable {
4646
public func buildExpr(format: Format, leadingTrivia: Trivia) -> ExprSyntax {
4747
SyntaxFactory.makeIntegerLiteralExpr(
4848
digits: SyntaxFactory.makeIntegerLiteral(String(value))
49-
)
49+
).withLeadingTrivia(leadingTrivia)
5050
}
5151
}
5252

@@ -67,6 +67,7 @@ public struct StringLiteral: ExprBuildable {
6767

6868
public func buildExpr(format: Format, leadingTrivia: Trivia) -> ExprSyntax {
6969
SyntaxFactory.makeStringLiteralExpr(value)
70+
.withLeadingTrivia(leadingTrivia)
7071
}
7172
}
7273

Sources/SwiftSyntaxBuilder/SyntaxBuildables.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,15 @@ public struct SourceFile: SyntaxBuildable {
6969

7070
return SourceFileSyntax {
7171
for (index, syntax) in syntaxList.enumerated() {
72-
let leadingTrivia: Trivia =
72+
let trivia: Trivia =
7373
index == syntaxList.startIndex
7474
? format.makeIndent()
7575
: .newlines(1) + format.makeIndent()
7676

7777
$0.addStatement(CodeBlockItemSyntax {
7878
$0.useItem(syntax)
79-
}.withLeadingTrivia(leadingTrivia))
79+
}.withLeadingTrivia(trivia))
8080
}
81-
}
81+
}.withLeadingTrivia(leadingTrivia)
8282
}
8383
}

0 commit comments

Comments
 (0)