From f89cf5101108750205d7c8066a5d076dff489662 Mon Sep 17 00:00:00 2001 From: Paul LeMarquand Date: Tue, 30 Apr 2024 13:58:04 -0400 Subject: [PATCH 1/2] Trim parameter names in SwiftTestingScanner Test specified with anonymous arguments would produce an id with extra whitespace, i.e: `funcWithArgument(_ x: Int)` would produce a TestItem id of `funcWithArgument(_ :)` This patch trims this extra whitespace to produce IDs that are consistent with Swift's function ids, i.e: `funcWithArgument(_:)` --- .../Swift/SwiftTestingScanner.swift | 2 +- .../DocumentTestDiscoveryTests.swift | 90 +++++++++++++++++++ 2 files changed, 91 insertions(+), 1 deletion(-) diff --git a/Sources/SourceKitLSP/Swift/SwiftTestingScanner.swift b/Sources/SourceKitLSP/Swift/SwiftTestingScanner.swift index bcb1ced1b..85e6e2d9c 100644 --- a/Sources/SourceKitLSP/Swift/SwiftTestingScanner.swift +++ b/Sources/SourceKitLSP/Swift/SwiftTestingScanner.swift @@ -292,7 +292,7 @@ final class SyntacticSwiftTestingTestScanner: SyntaxVisitor { } let name = - node.name.text + "(" + node.signature.parameterClause.parameters.map { "\($0.firstName):" }.joined() + ")" + node.name.text + "(" + node.signature.parameterClause.parameters.map { "\($0.firstName.trimmed):" }.joined() + ")" let range = snapshot.range(of: node.positionAfterSkippingLeadingTrivia.. Date: Tue, 30 Apr 2024 14:29:01 -0400 Subject: [PATCH 2/2] Use .text over .trimmed --- Sources/SourceKitLSP/Swift/SwiftTestingScanner.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/SourceKitLSP/Swift/SwiftTestingScanner.swift b/Sources/SourceKitLSP/Swift/SwiftTestingScanner.swift index 85e6e2d9c..ecda43039 100644 --- a/Sources/SourceKitLSP/Swift/SwiftTestingScanner.swift +++ b/Sources/SourceKitLSP/Swift/SwiftTestingScanner.swift @@ -292,7 +292,7 @@ final class SyntacticSwiftTestingTestScanner: SyntaxVisitor { } let name = - node.name.text + "(" + node.signature.parameterClause.parameters.map { "\($0.firstName.trimmed):" }.joined() + ")" + node.name.text + "(" + node.signature.parameterClause.parameters.map { "\($0.firstName.text):" }.joined() + ")" let range = snapshot.range(of: node.positionAfterSkippingLeadingTrivia..