@@ -48,6 +48,7 @@ public class CodeiumService {
4848 var cancellationCounter : UInt64 = 0
4949 let openedDocumentPool = OpenedDocumentPool ( )
5050 let onServiceLaunched : ( ) -> Void
51+ let onServiceTerminated : ( ) -> Void
5152
5253 let languageServerURL : URL
5354 let supportURL : URL
@@ -63,13 +64,19 @@ public class CodeiumService {
6364 projectRootURL = URL ( fileURLWithPath: " / " )
6465 server = designatedServer
6566 onServiceLaunched = { }
67+ onServiceTerminated = { }
6668 languageServerURL = URL ( fileURLWithPath: " / " )
6769 supportURL = URL ( fileURLWithPath: " / " )
6870 }
6971
70- public init ( projectRootURL: URL , onServiceLaunched: @escaping ( ) -> Void ) throws {
72+ public init (
73+ projectRootURL: URL ,
74+ onServiceLaunched: @escaping ( ) -> Void ,
75+ onServiceTerminated: @escaping ( ) -> Void
76+ ) throws {
7177 self . projectRootURL = projectRootURL
7278 self . onServiceLaunched = onServiceLaunched
79+ self . onServiceTerminated = onServiceTerminated
7380 let urls = try CodeiumService . createFoldersIfNeeded ( )
7481 languageServerURL = urls. executableURL. appendingPathComponent ( " language_server " )
7582 supportURL = urls. supportURL
@@ -117,6 +124,7 @@ public class CodeiumService {
117124 self ? . heartbeatTask? . cancel ( )
118125 self ? . requestCounter = 0
119126 self ? . cancellationCounter = 0
127+ self ? . onServiceTerminated ( )
120128 Logger . codeium. info ( " Language server is terminated, will be restarted when needed. " )
121129 }
122130
@@ -186,7 +194,7 @@ extension CodeiumService {
186194 throw E ( )
187195 }
188196 var ideVersion = await XcodeInspector . shared. safe. latestActiveXcode? . version
189- ?? fallbackXcodeVersion
197+ ?? fallbackXcodeVersion
190198 let versionNumberSegmentCount = ideVersion. split ( separator: " . " ) . count
191199 if versionNumberSegmentCount == 2 {
192200 ideVersion += " .0 "
@@ -237,8 +245,8 @@ extension CodeiumService: CodeiumSuggestionServiceType {
237245 let relativePath = getRelativePath ( of: fileURL)
238246
239247 let task = Task {
240- let request = await CodeiumRequest . GetCompletion ( requestBody: . init(
241- metadata: try getMetadata ( ) ,
248+ let request = try await CodeiumRequest . GetCompletion ( requestBody: . init(
249+ metadata: getMetadata ( ) ,
242250 document: . init(
243251 absolute_path: fileURL. path,
244252 relative_path: relativePath,
@@ -266,7 +274,7 @@ extension CodeiumService: CodeiumSuggestionServiceType {
266274
267275 try Task . checkCancellation ( )
268276
269- let result = try await ( try await setupServerIfNeeded ( ) ) . sendRequest ( request)
277+ let result = try await ( await setupServerIfNeeded ( ) ) . sendRequest ( request)
270278
271279 try Task . checkCancellation ( )
272280
0 commit comments