Skip to content

Commit 587c037

Browse files
erikkrietschErik Krietsch
andauthored
Add typeHierarchy/supertypes support (#25)
Co-authored-by: Erik Krietsch <ekrietsch@expediagroup.com>
1 parent f71f186 commit 587c037

File tree

5 files changed

+30
-1
lines changed

5 files changed

+30
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ The LSP [specification](https://microsoft.github.io/language-server-protocol/spe
138138
| textDocument/willSave ||
139139
| textDocument/willSaveWaitUntil ||
140140
| typeHierarchy/subtypes ||
141-
| typeHierarchy/supertypes | - |
141+
| typeHierarchy/supertypes | |
142142
| window/logMessage ||
143143
| window/showDocument ||
144144
| window/showMessage ||

Sources/LanguageServerProtocol/Client/JSONRPCServerConnection.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,8 @@ public actor JSONRPCServerConnection: ServerConnection {
185185
return try await session.response(to: method, params: params)
186186
case .typeHierarchySubtypes(let params, _):
187187
return try await session.response(to: method, params: params)
188+
case .typeHierarchySupertypes(let params, _):
189+
return try await session.response(to: method, params: params)
188190
case let .custom(method, params, _):
189191
return try await session.response(to: method, params: params)
190192
}

Sources/LanguageServerProtocol/Client/ServerConnection.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -725,4 +725,9 @@ extension ServerConnection {
725725
public func typeHierarchySubtypes(_ params: TypeHierarchySubtypesParams) async throws -> TypeHierarchySubtypesResponse {
726726
try await sendRequest(.typeHierarchySubtypes(params, ClientRequest.NullHandler))
727727
}
728+
729+
public func typeHierarchySupertypes(_ params: TypeHierarchySupertypesParams) async throws -> TypeHierarchySupertypesResponse
730+
{
731+
try await sendRequest(.typeHierarchySupertypes(params, ClientRequest.NullHandler))
732+
}
728733
}

Sources/LanguageServerProtocol/LanguageFeatures/TypeHeirarchy.swift

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,20 @@ public struct TypeHierarchySubtypesParams: Codable, Hashable, Sendable {
7070
}
7171

7272
public typealias TypeHierarchySubtypesResponse = [TypeHierarchyItem]?
73+
74+
public struct TypeHierarchySupertypesParams: Codable, Hashable, Sendable {
75+
public let workDoneToken: ProgressToken?
76+
public let partialResultToken: ProgressToken?
77+
public let item: TypeHierarchyItem
78+
79+
public init(
80+
workDoneToken: ProgressToken? = nil, partialResultToken: ProgressToken? = nil,
81+
item: TypeHierarchyItem
82+
) {
83+
self.workDoneToken = workDoneToken
84+
self.partialResultToken = partialResultToken
85+
self.item = item
86+
}
87+
}
88+
89+
public typealias TypeHierarchySupertypesResponse = [TypeHierarchyItem]?

Sources/LanguageServerProtocol/LanguageServerProtocol.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ public enum ClientRequest: Sendable {
167167
case callHierarchyIncomingCalls = "callHierarchy/incomingCalls"
168168
case callHierarchyOutgoingCalls = "callHierarchy/outgoingCalls"
169169
case typeHierarchySubtypes = "typeHierarchy/subtypes"
170+
case typeHierarchySupertypes = "typeHierarchy/supertypes"
170171
case custom
171172
}
172173

@@ -221,6 +222,8 @@ public enum ClientRequest: Sendable {
221222
case callHierarchyOutgoingCalls(
222223
CallHierarchyOutgoingCallsParams, Handler<CallHierarchyOutgoingCallsResponse>)
223224
case typeHierarchySubtypes(TypeHierarchySubtypesParams, Handler<TypeHierarchySubtypesResponse>)
225+
case typeHierarchySupertypes(
226+
TypeHierarchySupertypesParams, Handler<TypeHierarchySupertypesResponse>)
224227
case custom(String, LSPAny, Handler<LSPAny>)
225228

226229
public var method: Method {
@@ -323,6 +326,8 @@ public enum ClientRequest: Sendable {
323326
return .callHierarchyOutgoingCalls
324327
case .typeHierarchySubtypes:
325328
return .typeHierarchySubtypes
329+
case .typeHierarchySupertypes:
330+
return .typeHierarchySupertypes
326331
case .custom:
327332
return .custom
328333
}

0 commit comments

Comments
 (0)