@@ -1574,7 +1574,7 @@ private final class TokenStreamCreator: SyntaxVisitor {
1574
1574
}
1575
1575
1576
1576
private func extractLeadingTrivia( _ token: TokenSyntax ) {
1577
- let isStartOfFile = token. previousToken == nil
1577
+ var isStartOfFile = token. previousToken == nil
1578
1578
let trivia = token. leadingTrivia
1579
1579
1580
1580
for (index, piece) in trivia. enumerated ( ) {
@@ -1583,6 +1583,7 @@ private final class TokenStreamCreator: SyntaxVisitor {
1583
1583
if index > 0 || isStartOfFile {
1584
1584
appendToken ( . comment( Comment ( kind: . line, text: text) , wasEndOfLine: false ) )
1585
1585
appendToken ( . newline)
1586
+ isStartOfFile = false
1586
1587
}
1587
1588
1588
1589
case . blockComment( let text) :
@@ -1592,17 +1593,21 @@ private final class TokenStreamCreator: SyntaxVisitor {
1592
1593
// comment if the user places one here but the comment is otherwise adjacent to a text
1593
1594
// token.
1594
1595
appendToken ( . break( . same, size: 0 ) )
1596
+ isStartOfFile = false
1595
1597
}
1596
1598
1597
1599
case . docLineComment( let text) :
1598
1600
appendToken ( . comment( Comment ( kind: . docLine, text: text) , wasEndOfLine: false ) )
1599
1601
appendToken ( . newline)
1602
+ isStartOfFile = false
1600
1603
1601
1604
case . docBlockComment( let text) :
1602
1605
appendToken ( . comment( Comment ( kind: . docBlock, text: text) , wasEndOfLine: false ) )
1603
1606
appendToken ( . newline)
1607
+ isStartOfFile = false
1604
1608
1605
1609
case . newlines( let count) , . carriageReturns( let count) , . carriageReturnLineFeeds( let count) :
1610
+ guard !isStartOfFile else { break }
1606
1611
if config. respectsExistingLineBreaks && isDiscretionaryNewlineAllowed ( before: token) {
1607
1612
appendToken ( . newlines( count, discretionary: true ) )
1608
1613
}
0 commit comments