Skip to content

Commit ada683e

Browse files
committed
Address code review comments and fix some trivia issues
1 parent 6079c99 commit ada683e

File tree

3 files changed

+37
-12
lines changed

3 files changed

+37
-12
lines changed

Sources/PackageModelSyntax/AddPackageDependency.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,7 @@ public struct AddPackageDependency {
9696
trailingComma: .commaToken()
9797
)
9898
],
99-
rightSquare: .rightSquareToken()
100-
.with(\.leadingTrivia, leadingTrivia)
99+
rightSquare: .rightSquareToken(leadingTrivia: leadingTrivia)
101100
)
102101
newArgument = ExprSyntax(arrayExpr)
103102
}

Sources/PackageModelSyntax/SyntaxEditUtils.swift

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,7 @@ let defaultIndent = TriviaPiece.spaces(4)
2222
extension Trivia {
2323
/// Determine whether this trivia has newlines or not.
2424
var hasNewlines: Bool {
25-
contains { piece in
26-
if case .newlines = piece {
27-
return true
28-
} else {
29-
return false
30-
}
31-
}
25+
contains(where: \.isNewline)
3226
}
3327
}
3428

@@ -121,7 +115,7 @@ extension LabeledExprListSyntax {
121115

122116
let positionIdx = distance(from: startIndex, to: position)
123117

124-
let commaToken = TokenSyntax(.comma, presence: .present)
118+
let commaToken = TokenSyntax.commaToken()
125119

126120
// Figure out leading trivia and adjust the prior argument (if there is
127121
// one) by adding a comma, if necessary.
@@ -177,7 +171,7 @@ extension ArrayExprSyntax {
177171
) -> ArrayExprSyntax {
178172
var elements = self.elements
179173

180-
let commaToken = TokenSyntax(.comma, presence: .present)
174+
let commaToken = TokenSyntax.commaToken()
181175

182176
// If there are already elements, tack it on.
183177
let leadingTrivia: Trivia
@@ -192,7 +186,10 @@ extension ArrayExprSyntax {
192186
// there.
193187
if last.trailingComma == nil {
194188
var newElements = Array(elements)
195-
newElements[newElements.count-1] = last.with(\.trailingComma, commaToken)
189+
newElements[newElements.count - 1].trailingComma = commaToken
190+
newElements[newElements.count - 1].expression.trailingTrivia =
191+
Trivia()
192+
newElements[newElements.count - 1].trailingTrivia = last.trailingTrivia
196193
elements = ArrayElementListSyntax(newElements)
197194
}
198195

Tests/PackageModelSyntaxTests/ManifestEditTests.swift

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,35 @@ class ManifestEditTests: XCTestCase {
147147
}
148148
}
149149

150+
func testAddPackageDependencyExistingOneLine() throws {
151+
try assertManifestRefactor("""
152+
// swift-tools-version: 5.5
153+
let package = Package(
154+
name: "packages",
155+
dependencies: [ .package(url: "https://github.com/apple/swift-syntax.git", from: "510.0.1") ]
156+
)
157+
""", expectedManifest: """
158+
// swift-tools-version: 5.5
159+
let package = Package(
160+
name: "packages",
161+
dependencies: [ .package(url: "https://github.com/apple/swift-syntax.git", from: "510.0.1"), .package(url: "https://github.com/apple/swift-system.git", from: "510.0.0"),]
162+
)
163+
""") { manifest in
164+
let versionRange = Range<Version>.upToNextMajor(from: Version(510, 0, 0))
165+
166+
return try AddPackageDependency.addPackageDependency(
167+
PackageDependency.remoteSourceControl(
168+
identity: PackageIdentity(url: Self.swiftSystemURL),
169+
nameForTargetDependencyResolutionOnly: nil,
170+
url: Self.swiftSystemURL,
171+
requirement: .range(versionRange),
172+
productFilter: .nothing
173+
),
174+
to: manifest,
175+
manifestDirectory: try! AbsolutePath(validating: "/")
176+
)
177+
}
178+
}
150179
func testAddPackageDependencyExistingEmpty() throws {
151180
try assertManifestRefactor("""
152181
// swift-tools-version: 5.5

0 commit comments

Comments
 (0)