Skip to content

Commit f21722c

Browse files
committed
Implement CancelRequest for Codeium
1 parent bd3103c commit f21722c

File tree

2 files changed

+29
-8
lines changed

2 files changed

+29
-8
lines changed

Core/Sources/CodeiumService/CodeiumRequest.swift

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,25 @@ enum CodeiumRequest {
4848
}
4949
}
5050

51-
struct AcceptCompletion: CodeiumRequestType {
52-
struct Response: Codable {
53-
var state: State
54-
var completionItems: [CodeiumCompletionItem]?
51+
struct CancelRequest: CodeiumRequestType {
52+
struct Response: Codable {}
53+
54+
struct RequestBody: Codable {
55+
var request_id: UInt64
56+
var session_id: String
5557
}
5658

59+
var requestBody: RequestBody
60+
61+
func makeURLRequest(server: String) -> URLRequest {
62+
let data = (try? JSONEncoder().encode(requestBody)) ?? Data()
63+
return assembleURLRequest(server: server, method: "CancelRequest", body: data)
64+
}
65+
}
66+
67+
struct AcceptCompletion: CodeiumRequestType {
68+
struct Response: Codable {}
69+
5770
struct RequestBody: Codable {
5871
var metadata: Metadata
5972
var completion_id: String

Core/Sources/CodeiumService/CodeiumService.swift

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -257,13 +257,13 @@ extension CodeiumSuggestionService: CodeiumSuggestionServiceType {
257257
)
258258
}
259259
))
260-
260+
261261
if request.requestBody.metadata.request_id <= cancellationCounter {
262262
throw CancellationError()
263263
}
264264

265265
let result = try await (try await setupServerIfNeeded()).sendRequest(request)
266-
266+
267267
if request.requestBody.metadata.request_id <= cancellationCounter {
268268
throw CancellationError()
269269
}
@@ -292,8 +292,16 @@ extension CodeiumSuggestionService: CodeiumSuggestionServiceType {
292292
)
293293
} ?? []
294294
}
295-
295+
296296
public func cancelRequest() async {
297+
Task {
298+
try await server?.sendRequest(
299+
CodeiumRequest.CancelRequest(requestBody: .init(
300+
request_id: requestCounter,
301+
session_id: CodeiumSuggestionService.sessionId
302+
))
303+
)
304+
}
297305
cancellationCounter = requestCounter
298306
}
299307

@@ -326,7 +334,7 @@ extension CodeiumSuggestionService: CodeiumSuggestionServiceType {
326334
public func notifyCloseTextDocument(fileURL: URL) async throws {
327335
await openedDocumentPool.closeDocument(url: fileURL)
328336
}
329-
337+
330338
public func terminate() {
331339
server?.terminate()
332340
server = nil

0 commit comments

Comments
 (0)