Files
sourcekit-lsp/Sources/LanguageServerProtocolExtensions/ResponseError+Init.swift
2025-10-31 14:11:11 -07:00

47 lines
1.5 KiB
Swift

//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2023 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
@_spi(SourceKitLSP) import LanguageServerProtocol
import SourceKitD
extension ResponseError {
package init(_ error: some Error) {
switch error {
case let error as ResponseError:
self = error
case let error as SKDError:
self.init(error)
case is CancellationError:
self = .cancelled
default:
self = .unknown("Unknown error: \(error)")
}
}
private init(_ value: SKDError) {
switch value {
case .requestCancelled:
self = .cancelled
case .timedOut:
self = .unknown("sourcekitd request timed out")
case .requestFailed(let desc):
self = .unknown("sourcekitd request failed: \(desc)")
case .requestInvalid(let desc):
self = .unknown("sourcekitd invalid request \(desc)")
case .missingRequiredSymbol(let desc):
self = .unknown("sourcekitd missing required symbol '\(desc)'")
case .connectionInterrupted:
self = .unknown("sourcekitd connection interrupted")
}
}
}