diff --git a/Sources/LanguageServerProtocol/Connection.swift b/Sources/LanguageServerProtocol/Connection.swift index d9389e244..c9f73ea74 100644 --- a/Sources/LanguageServerProtocol/Connection.swift +++ b/Sources/LanguageServerProtocol/Connection.swift @@ -110,7 +110,7 @@ extension LocalConnection: Connection { public func send(_ request: Request, queue: DispatchQueue, reply: @escaping (LSPResult) -> Void) -> RequestID where Request: RequestType { let id = nextRequestID() guard let handler = handler else { - queue.async { reply(.failure(.cancelled)) } + queue.async { reply(.failure(.serverCancelled)) } return id } diff --git a/Sources/LanguageServerProtocol/Error.swift b/Sources/LanguageServerProtocol/Error.swift index 4a0128d6d..90f481f16 100644 --- a/Sources/LanguageServerProtocol/Error.swift +++ b/Sources/LanguageServerProtocol/Error.swift @@ -101,7 +101,9 @@ public struct ResponseError: Error, Codable, Hashable { extension ResponseError { // MARK: Convencience properties for common errors. - public static var cancelled: ResponseError = ResponseError(code: .cancelled, message: "request cancelled") + public static var cancelled: ResponseError = ResponseError(code: .cancelled, message: "request cancelled by client") + + public static var serverCancelled: ResponseError = ResponseError(code: .serverCancelled, message: "request cancelled by server") public static func workspaceNotOpen(_ uri: DocumentURI) -> ResponseError { return ResponseError(code: .workspaceNotOpen, message: "No workspace containing '\(uri)' found") diff --git a/Sources/LanguageServerProtocolJSONRPC/JSONRPCConnection.swift b/Sources/LanguageServerProtocolJSONRPC/JSONRPCConnection.swift index 737ba0886..330d61b25 100644 --- a/Sources/LanguageServerProtocolJSONRPC/JSONRPCConnection.swift +++ b/Sources/LanguageServerProtocolJSONRPC/JSONRPCConnection.swift @@ -404,7 +404,7 @@ extension JSONRPCConnection: Connection { let id = nextRequestID() guard readyToSend() else { - reply(.failure(.cancelled)) + reply(.failure(.serverCancelled)) return id } diff --git a/Sources/SourceKitLSP/Swift/CodeCompletion.swift b/Sources/SourceKitLSP/Swift/CodeCompletion.swift index 55f5f693d..241cffddf 100644 --- a/Sources/SourceKitLSP/Swift/CodeCompletion.swift +++ b/Sources/SourceKitLSP/Swift/CodeCompletion.swift @@ -60,11 +60,11 @@ extension SwiftLanguageServer { if req.params.context?.triggerKind == .triggerFromIncompleteCompletions { guard let currentSession = currentCompletionSession else { log("triggerFromIncompleteCompletions with no existing completion session", level: .warning) - return req.reply(.failure(.cancelled)) + return req.reply(.failure(.serverCancelled)) } guard currentSession.uri == snapshot.document.uri, currentSession.utf8StartOffset == offset else { log("triggerFromIncompleteCompletions with incompatible completion session; expected \(currentSession.uri)@\(currentSession.utf8StartOffset), but got \(snapshot.document.uri)@\(offset)", level: .warning) - return req.reply(.failure(.cancelled)) + return req.reply(.failure(.serverCancelled)) } session = currentSession } else { diff --git a/Sources/SourceKitLSP/Swift/CodeCompletionSession.swift b/Sources/SourceKitLSP/Swift/CodeCompletionSession.swift index 259cf6146..e02a3d2c4 100644 --- a/Sources/SourceKitLSP/Swift/CodeCompletionSession.swift +++ b/Sources/SourceKitLSP/Swift/CodeCompletionSession.swift @@ -85,7 +85,7 @@ class CodeCompletionSession { switch self.state { case .closed, .opening(_): // Don't try again. - completion(.failure(.cancelled)) + completion(.failure(.serverCancelled)) case .open: self._update(filterText: filterText, position: position, in: snapshot, options: options, completion: completion) } @@ -134,7 +134,7 @@ class CodeCompletionSession { return completion(.failure(ResponseError(result.failure!))) } if case .closed = self.state { - return completion(.failure(.cancelled)) + return completion(.failure(.serverCancelled)) } self.state = .open diff --git a/Sources/SourceKitLSP/Swift/SourceKitD+ResponseError.swift b/Sources/SourceKitLSP/Swift/SourceKitD+ResponseError.swift index 1a15487eb..272f2a12d 100644 --- a/Sources/SourceKitLSP/Swift/SourceKitD+ResponseError.swift +++ b/Sources/SourceKitLSP/Swift/SourceKitD+ResponseError.swift @@ -17,7 +17,7 @@ extension ResponseError { public init(_ value: SKDError) { switch value { case .requestCancelled: - self = .cancelled + self = .serverCancelled case .requestFailed(let desc): self = .unknown("sourcekitd request failed: \(desc)") case .requestInvalid(let desc): diff --git a/Sources/SourceKitLSP/Swift/SwiftLanguageServer.swift b/Sources/SourceKitLSP/Swift/SwiftLanguageServer.swift index 8a8d10456..9fbf0d6b5 100644 --- a/Sources/SourceKitLSP/Swift/SwiftLanguageServer.swift +++ b/Sources/SourceKitLSP/Swift/SwiftLanguageServer.swift @@ -584,7 +584,7 @@ extension SwiftLanguageServer { let position = req.params.position cursorInfo(uri, position..