mirror of
https://github.com/apple/sourcekit-lsp.git
synced 2026-03-02 18:23:24 +01:00
In HoverResponse Decode single MarkedString as [MarkedString] with one element
This commit is contained in:
@@ -56,7 +56,6 @@ public struct HoverResponse: ResponseType, Hashable {
|
||||
}
|
||||
|
||||
public enum HoverResponseContents: Hashable {
|
||||
case markedString(MarkedString)
|
||||
case markedStrings([MarkedString])
|
||||
case markupContent(MarkupContent)
|
||||
}
|
||||
@@ -96,13 +95,11 @@ extension MarkedString: Codable {
|
||||
extension HoverResponseContents: Codable {
|
||||
public init(from decoder: Decoder) throws {
|
||||
if let value = try? MarkupContent(from: decoder) {
|
||||
self = .markupContent(value)
|
||||
} else if let value = try? MarkedString(from: decoder) {
|
||||
self = .markedString(value)
|
||||
self = .markupContent(value)
|
||||
} else if let value = try? [MarkedString](from: decoder) {
|
||||
self = .markedStrings(value)
|
||||
} else if let value = try? MarkupContent(from: decoder) {
|
||||
self = .markupContent(value)
|
||||
self = .markedStrings(value)
|
||||
} else if let value = try? MarkedString(from: decoder) {
|
||||
self = .markedStrings([value])
|
||||
} else {
|
||||
let context = DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Expected MarkedString, [MarkedString], or MarkupContent")
|
||||
throw DecodingError.dataCorrupted(context)
|
||||
@@ -111,8 +108,6 @@ extension HoverResponseContents: Codable {
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
switch self {
|
||||
case .markedString(let value):
|
||||
try value.encode(to: encoder)
|
||||
case .markedStrings(let value):
|
||||
try value.encode(to: encoder)
|
||||
case .markupContent(let value):
|
||||
|
||||
@@ -216,11 +216,11 @@ final class CodingTests: XCTestCase {
|
||||
}
|
||||
""")
|
||||
|
||||
checkCoding(HoverResponse(contents: .markedString(.markdown(value: "test")), range: nil), json: """
|
||||
{
|
||||
"contents" : "test"
|
||||
}
|
||||
""")
|
||||
checkDecoding(json: """
|
||||
{
|
||||
"contents" : "test"
|
||||
}
|
||||
""", expected: HoverResponse(contents: .markedStrings([.markdown(value: "test")]), range: nil))
|
||||
|
||||
checkCoding(HoverResponse(contents: .markedStrings([.markdown(value: "test"), .codeBlock(language: "swift", value: "let foo = 2")]), range: nil), json: """
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user