Skip to content

Commit 71f9957

Browse files
committed
Update CodeGeneration to the latest SwiftSyntax commit
1 parent 0663a53 commit 71f9957

File tree

9 files changed

+2845
-1825
lines changed

9 files changed

+2845
-1825
lines changed

CodeGeneration/Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ let package = Package(
1212
.executable(name: "generate-swiftsyntaxbuilder", targets: ["generate-swiftsyntaxbuilder"]),
1313
],
1414
dependencies: [
15-
.package(url: "https://github.com/apple/swift-syntax.git", revision: "108a09851eb34b855bd0f9ff3e52ea396b531b58"),
15+
.package(url: "https://github.com/apple/swift-syntax.git", revision: "0663a530c4e51066343c3c2fbd95f8e626b8d631"),
1616
.package(url: "https://github.com/apple/swift-argument-parser.git", .upToNextMinor(from: "1.1.4")),
1717
],
1818
targets: [
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
//===----------------------------------------------------------------------===//
2+
//
3+
// This source file is part of the Swift.org open source project
4+
//
5+
// Copyright (c) 2014 - 2022 Apple Inc. and the Swift project authors
6+
// Licensed under Apache License v2.0 with Runtime Library Exception
7+
//
8+
// See https://swift.org/LICENSE.txt for license information
9+
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
10+
//
11+
//===----------------------------------------------------------------------===//
12+
13+
import SwiftBasicFormat
14+
import SwiftSyntax
15+
16+
/// A format style for files generated by CodeGeneration.
17+
public class CodeGenerationFormat: BasicFormat {
18+
public override var indentation: TriviaPiece { .spaces(indentationLevel * 2) }
19+
20+
public override func visit(_ node: MemberDeclListItemSyntax) -> Syntax {
21+
let formatted = super.visit(node)
22+
return formatted.withLeadingTrivia(indentedNewline + (formatted.leadingTrivia ?? []))
23+
}
24+
}

CodeGeneration/Sources/Utils/GenerateTemplates.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ import SwiftSyntaxBuilder
1515
import SwiftBasicFormat
1616

1717
public func generateTemplates(templates: [(SourceFile, String)], destination: URL, verbose: Bool) throws {
18-
let format = Format(indentWidth: 2)
19-
2018
try FileManager.default.createDirectory(
2119
atPath: destination.path,
2220
withIntermediateDirectories: true,
@@ -28,7 +26,7 @@ public func generateTemplates(templates: [(SourceFile, String)], destination: UR
2826
if verbose {
2927
print("Generating \(fileURL.path)...")
3028
}
31-
let syntax = sourceFile.buildSyntax(format: format)
29+
let syntax = sourceFile.build(format: CodeGenerationFormat())
3230
try "\(syntax)\n".write(to: fileURL, atomically: true, encoding: .utf8)
3331
}
3432
}

CodeGeneration/Sources/generate-swiftsyntaxbuilder/BuildableCollectionNodesFile.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ private func createBuildFunction(node: Node, trivias: [String]) -> FunctionDecl
172172
createTriviaAttachment(varName: IdentifierExpr("result"), triviaVarName: IdentifierExpr(trivia), trivia: trivia)
173173
}
174174
ReturnStmt("return result")
175-
}.buildSyntax(format: Format(indentWidth: 2))
175+
}.build(format: CodeGenerationFormat())
176176

177177
return FunctionDecl(
178178
"""

Sources/SwiftBasicFormat/generated/BasicFormat.swift

Lines changed: 55 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,12 @@
1616
import SwiftSyntax
1717
open class BasicFormat: SyntaxRewriter {
1818
public var indentationLevel: Int = 0
19-
open var indentation: TriviaPiece { .spaces(indentationLevel * 4) }
20-
public var indentedNewline: Trivia { Trivia(pieces: [.newlines(1), indentation]) }
19+
open var indentation: TriviaPiece {
20+
.spaces(indentationLevel * 4)
21+
}
22+
public var indentedNewline: Trivia {
23+
Trivia(pieces: [.newlines(1), indentation])
24+
}
2125
private var lastRewrittenToken: TokenSyntax?
2226

2327
open override func visit(_ node: UnknownDeclSyntax) -> DeclSyntax {
@@ -2860,7 +2864,7 @@ open class BasicFormat: SyntaxRewriter {
28602864
trailingTrivia += .space
28612865
}
28622866
case .doKeyword:
2863-
break
2867+
break
28642868
case .repeatKeyword:
28652869
if trailingTrivia.isEmpty {
28662870
trailingTrivia += .space
@@ -2906,7 +2910,7 @@ open class BasicFormat: SyntaxRewriter {
29062910
trailingTrivia += .space
29072911
}
29082912
case .defaultKeyword:
2909-
break
2913+
break
29102914
case .whereKeyword:
29112915
if leadingTrivia.isEmpty && lastRewrittenToken?.trailingTrivia.isEmpty != false {
29122916
leadingTrivia += .space
@@ -2931,25 +2935,25 @@ open class BasicFormat: SyntaxRewriter {
29312935
trailingTrivia += .space
29322936
}
29332937
case .falseKeyword:
2934-
break
2938+
break
29352939
case .isKeyword:
29362940
if trailingTrivia.isEmpty {
29372941
trailingTrivia += .space
29382942
}
29392943
case .nilKeyword:
2940-
break
2944+
break
29412945
case .rethrowsKeyword:
29422946
if trailingTrivia.isEmpty {
29432947
trailingTrivia += .space
29442948
}
29452949
case .superKeyword:
2946-
break
2950+
break
29472951
case .selfKeyword:
2948-
break
2952+
break
29492953
case .capitalSelfKeyword:
2950-
break
2954+
break
29512955
case .trueKeyword:
2952-
break
2956+
break
29532957
case .tryKeyword:
29542958
if trailingTrivia.isEmpty {
29552959
trailingTrivia += .space
@@ -2983,19 +2987,19 @@ open class BasicFormat: SyntaxRewriter {
29832987
trailingTrivia += .space
29842988
}
29852989
case .leftParen:
2986-
break
2990+
break
29872991
case .rightParen:
2988-
break
2992+
break
29892993
case .leftBrace:
29902994
if leadingTrivia.isEmpty && lastRewrittenToken?.trailingTrivia.isEmpty != false {
29912995
leadingTrivia += .space
29922996
}
29932997
case .rightBrace:
2994-
break
2998+
break
29952999
case .leftSquareBracket:
2996-
break
3000+
break
29973001
case .rightSquareBracket:
2998-
break
3002+
break
29993003
case .leftAngle:
30003004
if leadingTrivia.isEmpty && lastRewrittenToken?.trailingTrivia.isEmpty != false {
30013005
leadingTrivia += .space
@@ -3011,21 +3015,21 @@ open class BasicFormat: SyntaxRewriter {
30113015
trailingTrivia += .space
30123016
}
30133017
case .period:
3014-
break
3018+
break
30153019
case .prefixPeriod:
3016-
break
3020+
break
30173021
case .comma:
30183022
if trailingTrivia.isEmpty {
30193023
trailingTrivia += .space
30203024
}
30213025
case .ellipsis:
3022-
break
3026+
break
30233027
case .colon:
30243028
if trailingTrivia.isEmpty {
30253029
trailingTrivia += .space
30263030
}
30273031
case .semicolon:
3028-
break
3032+
break
30293033
case .equal:
30303034
if leadingTrivia.isEmpty && lastRewrittenToken?.trailingTrivia.isEmpty != false {
30313035
leadingTrivia += .space
@@ -3034,9 +3038,9 @@ open class BasicFormat: SyntaxRewriter {
30343038
trailingTrivia += .space
30353039
}
30363040
case .atSign:
3037-
break
3041+
break
30383042
case .pound:
3039-
break
3043+
break
30403044
case .prefixAmpersand:
30413045
if leadingTrivia.isEmpty && lastRewrittenToken?.trailingTrivia.isEmpty != false {
30423046
leadingTrivia += .space
@@ -3052,21 +3056,21 @@ open class BasicFormat: SyntaxRewriter {
30523056
trailingTrivia += .space
30533057
}
30543058
case .backtick:
3055-
break
3059+
break
30563060
case .backslash:
3057-
break
3061+
break
30583062
case .exclamationMark:
3059-
break
3063+
break
30603064
case .postfixQuestionMark:
3061-
break
3065+
break
30623066
case .infixQuestionMark:
3063-
break
3067+
break
30643068
case .stringQuote:
3065-
break
3069+
break
30663070
case .singleQuote:
3067-
break
3071+
break
30683072
case .multilineStringQuote:
3069-
break
3073+
break
30703074
case .poundKeyPathKeyword:
30713075
if trailingTrivia.isEmpty {
30723076
trailingTrivia += .space
@@ -3160,19 +3164,19 @@ open class BasicFormat: SyntaxRewriter {
31603164
trailingTrivia += .space
31613165
}
31623166
case .integerLiteral:
3163-
break
3167+
break
31643168
case .floatingLiteral:
3165-
break
3169+
break
31663170
case .stringLiteral:
3167-
break
3171+
break
31683172
case .regexLiteral:
3169-
break
3173+
break
31703174
case .unknown:
3171-
break
3175+
break
31723176
case .identifier:
3173-
break
3177+
break
31743178
case .unspacedBinaryOperator:
3175-
break
3179+
break
31763180
case .spacedBinaryOperator:
31773181
if leadingTrivia.isEmpty && lastRewrittenToken?.trailingTrivia.isEmpty != false {
31783182
leadingTrivia += .space
@@ -3181,38 +3185,38 @@ open class BasicFormat: SyntaxRewriter {
31813185
trailingTrivia += .space
31823186
}
31833187
case .postfixOperator:
3184-
break
3188+
break
31853189
case .prefixOperator:
3186-
break
3190+
break
31873191
case .dollarIdentifier:
3188-
break
3192+
break
31893193
case .rawStringDelimiter:
3190-
break
3194+
break
31913195
case .stringSegment:
3192-
break
3196+
break
31933197
case .stringInterpolationAnchor:
3194-
break
3198+
break
31953199
case .yield:
3196-
break
3200+
break
31973201
case .eof:
3198-
break
3202+
break
31993203
case .contextualKeyword:
32003204
switch node.text {
3201-
case "async":
3205+
case "async":
32023206
if trailingTrivia.isEmpty {
32033207
trailingTrivia += .space
32043208
}
3205-
default:
3206-
break
3209+
default:
3210+
break
32073211
}
32083212
}
32093213
leadingTrivia = leadingTrivia.indented(indentation: indentation)
32103214
trailingTrivia = trailingTrivia.indented(indentation: indentation)
32113215
let rewritten = TokenSyntax(
3212-
node.tokenKind,
3213-
leadingTrivia: leadingTrivia,
3214-
trailingTrivia: trailingTrivia,
3215-
presence: node.presence
3216+
node.tokenKind,
3217+
leadingTrivia: leadingTrivia,
3218+
trailingTrivia: trailingTrivia,
3219+
presence: node.presence
32163220
)
32173221
lastRewrittenToken = rewritten
32183222
return rewritten

0 commit comments

Comments
 (0)