Skip to content

Commit 158a5eb

Browse files
committed
Fix more review comments
1 parent 71b84b1 commit 158a5eb

File tree

3 files changed

+60
-46
lines changed

3 files changed

+60
-46
lines changed

Sources/SwiftLanguageService/SwiftPlaygroundsScanner.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13+
internal import BuildServerIntegration
1314
import Foundation
1415
import LanguageServerProtocol
1516
import SKLogging
1617
import SourceKitLSP
17-
import SwiftSyntax
1818
import SwiftParser
19-
internal import BuildServerIntegration
19+
import SwiftSyntax
2020

2121
// MARK: - SwiftPlaygroundsScanner
2222

@@ -47,7 +47,7 @@ final class SwiftPlaygroundsScanner: SyntaxVisitor {
4747
) async -> [TextDocumentPlayground] {
4848
guard let canonicalTarget = await workspace.buildServerManager.canonicalTarget(for: snapshot.uri),
4949
let moduleName = await workspace.buildServerManager.moduleName(for: snapshot.uri, in: canonicalTarget),
50-
let baseName = snapshot.uri.fileURL?.lastPathComponent
50+
let baseName = snapshot.uri.fileURL?.lastPathComponent
5151
else {
5252
return []
5353
}
@@ -63,7 +63,7 @@ final class SwiftPlaygroundsScanner: SyntaxVisitor {
6363
range: Range<AbsolutePosition>
6464
) {
6565
let positionRange = snapshot.absolutePositionRange(of: range)
66-
66+
6767
result.append(
6868
TextDocumentPlayground(
6969
id: id,
@@ -91,7 +91,7 @@ final class SwiftPlaygroundsScanner: SyntaxVisitor {
9191
let playgroundID = "\(baseID):\(startPosition.line + 1):\(startPosition.utf16index + 1)"
9292

9393
record(
94-
id: playgroundID,
94+
id: playgroundID,
9595
label: playgroundLabel,
9696
range: node.trimmedRange
9797
)

Sources/ToolchainRegistry/Toolchain.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,9 @@ public final class Toolchain: Sendable {
245245
}
246246
}
247247
return isSuperset(for: \.clang) && isSuperset(for: \.swift) && isSuperset(for: \.swiftc)
248-
&& isSuperset(for: \.clangd) && isSuperset(for: \.sourcekitd) && isSuperset(for: \.libIndexStore)
248+
&& isSuperset(for: \.swiftPlay) && isSuperset(for: \.swiftFormat) && isSuperset(for: \.sourceKitClientPlugin)
249+
&& isSuperset(for: \.sourceKitServicePlugin) && isSuperset(for: \.clangd) && isSuperset(for: \.sourcekitd)
250+
&& isSuperset(for: \.libIndexStore)
249251
}
250252

251253
/// Same as `isSuperset` but returns `false` if both toolchains have the same set of tools.

Tests/SourceKitLSPTests/CodeLensTests.swift

Lines changed: 52 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,54 @@ import SKTestSupport
1515
import ToolchainRegistry
1616
import XCTest
1717

18-
final class CodeLensTests: XCTestCase {
18+
fileprivate extension Toolchain {
19+
#if compiler(>=6.4)
20+
#warning(
21+
"Once we require swift-play in the toolchain that's used to test SourceKit-LSP, we can just use `forTesting`"
22+
)
23+
#endif
24+
static var forTestingWithSwiftPlay: Toolchain {
25+
get async throws {
26+
let toolchain = try await unwrap(ToolchainRegistry.forTesting.default)
27+
return Toolchain(
28+
identifier: "\(toolchain.identifier)-swift-swift",
29+
displayName: "\(toolchain.identifier) with swift-play",
30+
path: toolchain.path,
31+
clang: toolchain.clang,
32+
swift: toolchain.swift,
33+
swiftc: toolchain.swiftc,
34+
swiftPlay: URL(fileURLWithPath: "/dummy/usr/bin/swift-play"),
35+
clangd: toolchain.clangd,
36+
sourcekitd: toolchain.sourcekitd,
37+
sourceKitClientPlugin: toolchain.sourceKitClientPlugin,
38+
sourceKitServicePlugin: toolchain.sourceKitServicePlugin,
39+
libIndexStore: toolchain.libIndexStore
40+
)
41+
}
42+
}
1943

20-
var toolchain: Toolchain!
21-
var toolchainWithSwiftPlay: Toolchain!
22-
23-
override func setUp() async throws {
24-
toolchain = try await unwrap(ToolchainRegistry.forTesting.default)
25-
toolchainWithSwiftPlay = Toolchain(
26-
identifier: "\(toolchain.identifier)-swift-swift",
27-
displayName: "\(toolchain.identifier) with swift-play",
28-
path: toolchain.path,
29-
clang: toolchain.clang,
30-
swift: toolchain.swift,
31-
swiftc: toolchain.swiftc,
32-
swiftPlay: URL(fileURLWithPath: "/dummy/usr/bin/swift-play"),
33-
clangd: toolchain.clangd,
34-
sourcekitd: toolchain.sourcekitd,
35-
sourceKitClientPlugin: toolchain.sourceKitClientPlugin,
36-
sourceKitServicePlugin: toolchain.sourceKitServicePlugin,
37-
libIndexStore: toolchain.libIndexStore
38-
)
44+
static var forTestingWithoutSwiftPlay: Toolchain {
45+
get async throws {
46+
let toolchain = try await unwrap(ToolchainRegistry.forTesting.default)
47+
return Toolchain(
48+
identifier: "\(toolchain.identifier)-no-swift-swift",
49+
displayName: "\(toolchain.identifier) without swift-play",
50+
path: toolchain.path,
51+
clang: toolchain.clang,
52+
swift: toolchain.swift,
53+
swiftc: toolchain.swiftc,
54+
swiftPlay: nil,
55+
clangd: toolchain.clangd,
56+
sourcekitd: toolchain.sourcekitd,
57+
sourceKitClientPlugin: toolchain.sourceKitClientPlugin,
58+
sourceKitServicePlugin: toolchain.sourceKitServicePlugin,
59+
libIndexStore: toolchain.libIndexStore
60+
)
61+
}
3962
}
63+
}
64+
65+
final class CodeLensTests: XCTestCase {
4066

4167
func testNoLenses() async throws {
4268
var codeLensCapabilities = TextDocumentClientCapabilities.CodeLens()
@@ -66,7 +92,7 @@ final class CodeLensTests: XCTestCase {
6692
}
6793

6894
func testNoClientCodeLenses() async throws {
69-
let toolchainRegistry = ToolchainRegistry(toolchains: [toolchainWithSwiftPlay])
95+
let toolchainRegistry = ToolchainRegistry(toolchains: [try await Toolchain.forTestingWithSwiftPlay])
7096
let project = try await SwiftPMTestProject(
7197
files: [
7298
"Test.swift": """
@@ -105,7 +131,7 @@ final class CodeLensTests: XCTestCase {
105131
SupportedCodeLensCommand.play: "swift.play",
106132
]
107133
let capabilities = ClientCapabilities(textDocument: TextDocumentClientCapabilities(codeLens: codeLensCapabilities))
108-
let toolchainRegistry = ToolchainRegistry(toolchains: [toolchainWithSwiftPlay])
134+
let toolchainRegistry = ToolchainRegistry(toolchains: [try await Toolchain.forTestingWithSwiftPlay])
109135

110136
let project = try await SwiftPMTestProject(
111137
files: [
@@ -194,7 +220,7 @@ final class CodeLensTests: XCTestCase {
194220
SupportedCodeLensCommand.play: "swift.play"
195221
]
196222
let capabilities = ClientCapabilities(textDocument: TextDocumentClientCapabilities(codeLens: codeLensCapabilities))
197-
let toolchainRegistry = ToolchainRegistry(toolchains: [toolchainWithSwiftPlay])
223+
let toolchainRegistry = ToolchainRegistry(toolchains: [try await Toolchain.forTestingWithSwiftPlay])
198224

199225
let project = try await SwiftPMTestProject(
200226
files: [
@@ -256,21 +282,7 @@ final class CodeLensTests: XCTestCase {
256282
SupportedCodeLensCommand.play: "swift.play",
257283
]
258284
let capabilities = ClientCapabilities(textDocument: TextDocumentClientCapabilities(codeLens: codeLensCapabilities))
259-
let toolchainWithoutSwiftPlay = Toolchain(
260-
identifier: "\(toolchain.identifier)-swift-swift",
261-
displayName: "\(toolchain.identifier) with swift-play",
262-
path: toolchain.path,
263-
clang: toolchain.clang,
264-
swift: toolchain.swift,
265-
swiftc: toolchain.swiftc,
266-
swiftPlay: nil,
267-
clangd: toolchain.clangd,
268-
sourcekitd: toolchain.sourcekitd,
269-
sourceKitClientPlugin: toolchain.sourceKitClientPlugin,
270-
sourceKitServicePlugin: toolchain.sourceKitServicePlugin,
271-
libIndexStore: toolchain.libIndexStore
272-
)
273-
let toolchainRegistry = ToolchainRegistry(toolchains: [toolchainWithoutSwiftPlay])
285+
let toolchainRegistry = ToolchainRegistry(toolchains: [try await Toolchain.forTestingWithoutSwiftPlay])
274286

275287
let project = try await SwiftPMTestProject(
276288
files: [
@@ -331,7 +343,7 @@ final class CodeLensTests: XCTestCase {
331343
SupportedCodeLensCommand.play: "swift.play"
332344
]
333345
let capabilities = ClientCapabilities(textDocument: TextDocumentClientCapabilities(codeLens: codeLensCapabilities))
334-
let toolchainRegistry = ToolchainRegistry(toolchains: [toolchainWithSwiftPlay])
346+
let toolchainRegistry = ToolchainRegistry(toolchains: [try await Toolchain.forTestingWithSwiftPlay])
335347
let project = try await SwiftPMTestProject(
336348
files: [
337349
"Sources/MyLibrary/Test.swift": """
@@ -375,7 +387,7 @@ final class CodeLensTests: XCTestCase {
375387
SupportedCodeLensCommand.play: "swift.play"
376388
]
377389
let capabilities = ClientCapabilities(textDocument: TextDocumentClientCapabilities(codeLens: codeLensCapabilities))
378-
let toolchainRegistry = ToolchainRegistry(toolchains: [toolchainWithSwiftPlay])
390+
let toolchainRegistry = ToolchainRegistry(toolchains: [try await Toolchain.forTestingWithSwiftPlay])
379391
let project = try await SwiftPMTestProject(
380392
files: [
381393
"Sources/MyLibrary/Test.swift": """

0 commit comments

Comments
 (0)