From a9094391f0b7dd0a8fd5aa0ec24604e9368946bd Mon Sep 17 00:00:00 2001 From: Alex Hoppen Date: Wed, 14 May 2025 18:44:30 +0200 Subject: [PATCH] Pass `cancelOnSubsequentRequest: 0` to all requests that support it Adopt the option introduced by https://github.com/swiftlang/swift/pull/81507. SourceKit-LSP uses explicit cancellation and perform any implicit cancellation inside sourcekitd. Fixes #2021 rdar://145871554 --- Sources/SourceKitLSP/Swift/MacroExpansion.swift | 1 + Sources/SourceKitLSP/Swift/RefactoringResponse.swift | 1 + Sources/SourceKitLSP/Swift/VariableTypeInfo.swift | 1 + 3 files changed, 3 insertions(+) diff --git a/Sources/SourceKitLSP/Swift/MacroExpansion.swift b/Sources/SourceKitLSP/Swift/MacroExpansion.swift index 03f505fbd..74749100f 100644 --- a/Sources/SourceKitLSP/Swift/MacroExpansion.swift +++ b/Sources/SourceKitLSP/Swift/MacroExpansion.swift @@ -94,6 +94,7 @@ actor MacroExpansionManager { let length = snapshot.utf8OffsetRange(of: range).count let skreq = swiftLanguageService.sourcekitd.dictionary([ + keys.cancelOnSubsequentRequest: 0, // Preferred name for e.g. an extracted variable. // Empty string means sourcekitd chooses a name automatically. keys.name: "", diff --git a/Sources/SourceKitLSP/Swift/RefactoringResponse.swift b/Sources/SourceKitLSP/Swift/RefactoringResponse.swift index 382595b76..be497a59d 100644 --- a/Sources/SourceKitLSP/Swift/RefactoringResponse.swift +++ b/Sources/SourceKitLSP/Swift/RefactoringResponse.swift @@ -117,6 +117,7 @@ extension SwiftLanguageService { let utf8Column = snapshot.lineTable.utf8ColumnAt(line: line, utf16Column: utf16Column) let skreq = sourcekitd.dictionary([ + keys.cancelOnSubsequentRequest: 0, // Preferred name for e.g. an extracted variable. // Empty string means sourcekitd chooses a name automatically. keys.name: "", diff --git a/Sources/SourceKitLSP/Swift/VariableTypeInfo.swift b/Sources/SourceKitLSP/Swift/VariableTypeInfo.swift index a13409c53..9c0346911 100644 --- a/Sources/SourceKitLSP/Swift/VariableTypeInfo.swift +++ b/Sources/SourceKitLSP/Swift/VariableTypeInfo.swift @@ -86,6 +86,7 @@ extension SwiftLanguageService { let snapshot = try await self.latestSnapshot(for: uri) let skreq = sourcekitd.dictionary([ + keys.cancelOnSubsequentRequest: 0, keys.sourceFile: snapshot.uri.sourcekitdSourceFile, keys.primaryFile: snapshot.uri.primaryFile?.pseudoPath, keys.compilerArgs: await self.compileCommand(for: uri, fallbackAfterTimeout: false)?.compilerArgs