Skip to content

Commit bdd6ab1

Browse files
authored
Merge pull request #2048 from ahoppen/diag-refresh-capability
Do not send `DiagnosticsRefreshRequest` to the client if it doesn't support it
2 parents 71dfc73 + 776d019 commit bdd6ab1

File tree

6 files changed

+28
-10
lines changed

6 files changed

+28
-10
lines changed

Sources/SKTestSupport/TestSourceKitLSPClient.swift

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -365,12 +365,6 @@ package final class TestSourceKitLSPClient: MessageHandler, Sendable {
365365
return (handler, index, handlerAndIsOneShot.isOneShot)
366366
}.first
367367
guard let (requestHandler, index, isOneShot) = requestHandlerIndexAndIsOneShot else {
368-
if Request.self == DiagnosticsRefreshRequest.self {
369-
// Ignore diagnostic refresh requests. This keeps the log a little cleaner than if we return
370-
// methodNotFound.
371-
reply(.success(VoidResponse() as! Request.Response))
372-
return
373-
}
374368
reply(.failure(.methodNotFound(Request.method)))
375369
return
376370
}

Sources/SourceKitLSP/Swift/SwiftLanguageService.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,12 @@ package actor SwiftLanguageService: LanguageService, Sendable {
237237
logger.fault("Not sending DiagnosticRefreshRequest to client because sourceKitLSPServer has been deallocated")
238238
return
239239
}
240+
guard
241+
await sourceKitLSPServer.capabilityRegistry?.clientCapabilities.workspace?.diagnostics?.refreshSupport ?? false
242+
else {
243+
logger.debug("Not sending DiagnosticRefreshRequest because the client doesn't support it")
244+
return
245+
}
240246
_ = await orLog("Sending DiagnosticRefreshRequest to client after document dependencies updated") {
241247
try await sourceKitLSPServer.sendRequestToClient(DiagnosticsRefreshRequest())
242248
}

Tests/SourceKitLSPTests/BackgroundIndexingTests.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,10 @@ final class BackgroundIndexingTests: XCTestCase {
572572
]
573573
)
574574
""",
575-
capabilities: ClientCapabilities(window: WindowClientCapabilities(workDoneProgress: true)),
575+
capabilities: ClientCapabilities(
576+
workspace: WorkspaceClientCapabilities(diagnostics: RefreshRegistrationCapability(refreshSupport: true)),
577+
window: WindowClientCapabilities(workDoneProgress: true)
578+
),
576579
hooks: testHooks,
577580
enableBackgroundIndexing: true,
578581
cleanUp: { expectedPreparationTracker.keepAlive() }

Tests/SourceKitLSPTests/DefinitionTests.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,9 @@ class DefinitionTests: XCTestCase {
342342
}
343343
""",
344344
],
345+
capabilities: ClientCapabilities(
346+
workspace: WorkspaceClientCapabilities(diagnostics: RefreshRegistrationCapability(refreshSupport: true))
347+
),
345348
enableBackgroundIndexing: true
346349
)
347350

@@ -408,7 +411,10 @@ class DefinitionTests: XCTestCase {
408411
.target(name: "LibB", dependencies: ["LibA"]),
409412
]
410413
)
411-
"""
414+
""",
415+
capabilities: ClientCapabilities(
416+
workspace: WorkspaceClientCapabilities(diagnostics: RefreshRegistrationCapability(refreshSupport: true))
417+
)
412418
)
413419

414420
let (bUri, bPositions) = try project.openDocument("LibB.swift")

Tests/SourceKitLSPTests/PullDiagnosticsTests.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,10 @@ final class PullDiagnosticsTests: XCTestCase {
179179
sayHello()
180180
}
181181
""",
182-
]
182+
],
183+
capabilities: ClientCapabilities(
184+
workspace: WorkspaceClientCapabilities(diagnostics: RefreshRegistrationCapability(refreshSupport: true))
185+
)
183186
)
184187

185188
let (bUri, _) = try project.openDocument("FileB.swift")
@@ -235,7 +238,10 @@ final class PullDiagnosticsTests: XCTestCase {
235238
.target(name: "LibB", dependencies: ["LibA"]),
236239
]
237240
)
238-
"""
241+
""",
242+
capabilities: ClientCapabilities(
243+
workspace: WorkspaceClientCapabilities(diagnostics: RefreshRegistrationCapability(refreshSupport: true))
244+
)
239245
)
240246

241247
let (bUri, _) = try project.openDocument("LibB.swift")

Tests/SourceKitLSPTests/SwiftPMIntegrationTests.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,9 @@ final class SwiftPMIntegrationTests: XCTestCase {
328328
let x: String = 1
329329
"""
330330
],
331+
capabilities: ClientCapabilities(
332+
workspace: WorkspaceClientCapabilities(diagnostics: RefreshRegistrationCapability(refreshSupport: true))
333+
),
331334
hooks: Hooks(
332335
buildSystemHooks: BuildSystemHooks(
333336
swiftPMTestHooks: SwiftPMTestHooks(reloadPackageDidStart: {

0 commit comments

Comments
 (0)