Skip to content

Commit 1e3eb35

Browse files
committed
Add utility property for adding backticks
1 parent 5bc624d commit 1e3eb35

File tree

4 files changed

+39
-15
lines changed

4 files changed

+39
-15
lines changed

Sources/SwiftSyntax/gyb_generated/SyntaxFactory.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7371,7 +7371,7 @@ public enum SyntaxFactory {
73717371
@available(*, deprecated, message: "Use TokenSyntax.falseKeywordKeyword instead")
73727372
public static func makeFalseKeyword(
73737373
leadingTrivia: Trivia = [],
7374-
trailingTrivia: Trivia = .space
7374+
trailingTrivia: Trivia = []
73757375
) -> TokenSyntax {
73767376
return makeToken(.falseKeyword, presence: .present,
73777377
leadingTrivia: leadingTrivia,
@@ -7389,7 +7389,7 @@ public enum SyntaxFactory {
73897389
@available(*, deprecated, message: "Use TokenSyntax.nilKeywordKeyword instead")
73907390
public static func makeNilKeyword(
73917391
leadingTrivia: Trivia = [],
7392-
trailingTrivia: Trivia = .space
7392+
trailingTrivia: Trivia = []
73937393
) -> TokenSyntax {
73947394
return makeToken(.nilKeyword, presence: .present,
73957395
leadingTrivia: leadingTrivia,
@@ -7407,7 +7407,7 @@ public enum SyntaxFactory {
74077407
@available(*, deprecated, message: "Use TokenSyntax.superKeywordKeyword instead")
74087408
public static func makeSuperKeyword(
74097409
leadingTrivia: Trivia = [],
7410-
trailingTrivia: Trivia = .space
7410+
trailingTrivia: Trivia = []
74117411
) -> TokenSyntax {
74127412
return makeToken(.superKeyword, presence: .present,
74137413
leadingTrivia: leadingTrivia,
@@ -7416,7 +7416,7 @@ public enum SyntaxFactory {
74167416
@available(*, deprecated, message: "Use TokenSyntax.selfKeywordKeyword instead")
74177417
public static func makeSelfKeyword(
74187418
leadingTrivia: Trivia = [],
7419-
trailingTrivia: Trivia = .space
7419+
trailingTrivia: Trivia = []
74207420
) -> TokenSyntax {
74217421
return makeToken(.selfKeyword, presence: .present,
74227422
leadingTrivia: leadingTrivia,
@@ -7425,7 +7425,7 @@ public enum SyntaxFactory {
74257425
@available(*, deprecated, message: "Use TokenSyntax.capitalSelfKeywordKeyword instead")
74267426
public static func makeCapitalSelfKeyword(
74277427
leadingTrivia: Trivia = [],
7428-
trailingTrivia: Trivia = .space
7428+
trailingTrivia: Trivia = []
74297429
) -> TokenSyntax {
74307430
return makeToken(.capitalSelfKeyword, presence: .present,
74317431
leadingTrivia: leadingTrivia,
@@ -7434,7 +7434,7 @@ public enum SyntaxFactory {
74347434
@available(*, deprecated, message: "Use TokenSyntax.trueKeywordKeyword instead")
74357435
public static func makeTrueKeyword(
74367436
leadingTrivia: Trivia = [],
7437-
trailingTrivia: Trivia = .space
7437+
trailingTrivia: Trivia = []
74387438
) -> TokenSyntax {
74397439
return makeToken(.trueKeyword, presence: .present,
74407440
leadingTrivia: leadingTrivia,

Sources/SwiftSyntax/gyb_generated/Tokens.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ extension TokenSyntax {
546546
return TokenSyntax(
547547
.falseKeyword,
548548
leadingTrivia: leadingTrivia ?? defaultTrivia(presence: presence, trivia: []),
549-
trailingTrivia: trailingTrivia ?? defaultTrivia(presence: presence, trivia: .space),
549+
trailingTrivia: trailingTrivia ?? defaultTrivia(presence: presence, trivia: []),
550550
presence: presence
551551
)
552552
}
@@ -570,7 +570,7 @@ extension TokenSyntax {
570570
return TokenSyntax(
571571
.nilKeyword,
572572
leadingTrivia: leadingTrivia ?? defaultTrivia(presence: presence, trivia: []),
573-
trailingTrivia: trailingTrivia ?? defaultTrivia(presence: presence, trivia: .space),
573+
trailingTrivia: trailingTrivia ?? defaultTrivia(presence: presence, trivia: []),
574574
presence: presence
575575
)
576576
}
@@ -594,7 +594,7 @@ extension TokenSyntax {
594594
return TokenSyntax(
595595
.superKeyword,
596596
leadingTrivia: leadingTrivia ?? defaultTrivia(presence: presence, trivia: []),
597-
trailingTrivia: trailingTrivia ?? defaultTrivia(presence: presence, trivia: .space),
597+
trailingTrivia: trailingTrivia ?? defaultTrivia(presence: presence, trivia: []),
598598
presence: presence
599599
)
600600
}
@@ -606,7 +606,7 @@ extension TokenSyntax {
606606
return TokenSyntax(
607607
.selfKeyword,
608608
leadingTrivia: leadingTrivia ?? defaultTrivia(presence: presence, trivia: []),
609-
trailingTrivia: trailingTrivia ?? defaultTrivia(presence: presence, trivia: .space),
609+
trailingTrivia: trailingTrivia ?? defaultTrivia(presence: presence, trivia: []),
610610
presence: presence
611611
)
612612
}
@@ -618,7 +618,7 @@ extension TokenSyntax {
618618
return TokenSyntax(
619619
.capitalSelfKeyword,
620620
leadingTrivia: leadingTrivia ?? defaultTrivia(presence: presence, trivia: []),
621-
trailingTrivia: trailingTrivia ?? defaultTrivia(presence: presence, trivia: .space),
621+
trailingTrivia: trailingTrivia ?? defaultTrivia(presence: presence, trivia: []),
622622
presence: presence
623623
)
624624
}
@@ -630,7 +630,7 @@ extension TokenSyntax {
630630
return TokenSyntax(
631631
.trueKeyword,
632632
leadingTrivia: leadingTrivia ?? defaultTrivia(presence: presence, trivia: []),
633-
trailingTrivia: trailingTrivia ?? defaultTrivia(presence: presence, trivia: .space),
633+
trailingTrivia: trailingTrivia ?? defaultTrivia(presence: presence, trivia: []),
634634
presence: presence
635635
)
636636
}

Sources/SwiftSyntaxBuilderGeneration/String+Extensions.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ import Foundation
1414

1515
extension StringProtocol {
1616
var withFirstCharacterLowercased: String { prefix(1).lowercased() + dropFirst() }
17+
var backticked: String { "`\(self)`" }
1718
}

Sources/SwiftSyntaxBuilderGeneration/Templates/TokensFile.swift

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ let tokensFile = SourceFile {
3535
// We need to use `CodeBlock` here to ensure there is braces around.
3636

3737
let accessor = CodeBlock {
38-
FunctionCallExpr(MemberAccessExpr(base: "TokenSyntax", name: "\(token.swiftKind)"))
38+
FunctionCallExpr(MemberAccessExpr(base: "TokenSyntax", name: token.swiftKind))
3939
}
4040

41-
createTokenSyntaxPatternBinding("`\(token.name.withFirstCharacterLowercased)`", accessor: accessor)
41+
createTokenSyntaxPatternBinding(token.name.withFirstCharacterLowercased.backticked, accessor: accessor)
4242
}
4343
} else if let text = token.text {
4444
VariableDecl(
@@ -51,7 +51,30 @@ let tokensFile = SourceFile {
5151
FunctionCallExpr(MemberAccessExpr(base: "TokenSyntax", name: "\(token.swiftKind)Token"))
5252
}
5353

54-
createTokenSyntaxPatternBinding("`\(token.name.withFirstCharacterLowercased)`", accessor: accessor)
54+
createTokenSyntaxPatternBinding(token.name.withFirstCharacterLowercased.backticked, accessor: accessor)
55+
}
56+
} else {
57+
let signature = FunctionSignature(
58+
input: ParameterClause {
59+
FunctionParameter(
60+
attributes: nil,
61+
firstName: .wildcard,
62+
secondName: .identifier("text"),
63+
colon: .colon,
64+
type: "String"
65+
)
66+
},
67+
output: "TokenSyntax"
68+
)
69+
70+
FunctionDecl(
71+
modifiers: [TokenSyntax.static],
72+
identifier: .identifier(token.name.withFirstCharacterLowercased.backticked),
73+
signature: signature
74+
) {
75+
FunctionCallExpr(MemberAccessExpr(base: "SyntaxFactory", name: "make\(token.name)")) {
76+
TupleExprElement(expression: IdentifierExpr("text"))
77+
}
5578
}
5679
}
5780
// TokenSyntax with custom text already has a static constructor function defined in SwiftSyntax.

0 commit comments

Comments
 (0)