@@ -73,9 +73,9 @@ final class Workspace {
7373 }
7474
7575 let projectRootURL : URL
76- var lastTriggerDate = Environment . now ( )
76+ var lastSuggestionUpdateTime = Environment . now ( )
7777 var isExpired : Bool {
78- Environment . now ( ) . timeIntervalSince ( lastTriggerDate ) > 60 * 60 * 8
78+ Environment . now ( ) . timeIntervalSince ( lastSuggestionUpdateTime ) > 60 * 60 * 8
7979 }
8080
8181 private( set) var filespaces = [ URL: Filespace] ( )
@@ -132,6 +132,10 @@ final class Workspace {
132132 _ = self . copilotSuggestionService
133133 }
134134 }
135+
136+ func refreshUpdateTime( ) {
137+ lastSuggestionUpdateTime = Environment . now ( )
138+ }
135139
136140 func canAutoTriggerGetSuggestions(
137141 forFileAt fileURL: URL ,
@@ -160,6 +164,7 @@ final class Workspace {
160164 let workspace = workspaces [ workspaceURL] ?? Workspace ( projectRootURL: workspaceURL)
161165 let filespace = workspace. createFilespaceIfNeeded ( fileURL: fileURL)
162166 workspaces [ workspaceURL] = workspace
167+ workspace. refreshUpdateTime ( )
163168 return ( workspace, filespace)
164169 }
165170
@@ -192,7 +197,7 @@ extension Workspace {
192197 if shouldcancelInFlightRealtimeSuggestionRequests {
193198 cancelInFlightRealtimeSuggestionRequests ( )
194199 }
195- lastTriggerDate = Environment . now ( )
200+ refreshUpdateTime ( )
196201
197202 let filespace = createFilespaceIfNeeded ( fileURL: fileURL)
198203
@@ -233,7 +238,7 @@ extension Workspace {
233238
234239 func selectNextSuggestion( forFileAt fileURL: URL ) {
235240 cancelInFlightRealtimeSuggestionRequests ( )
236- lastTriggerDate = Environment . now ( )
241+ refreshUpdateTime ( )
237242 guard let filespace = filespaces [ fileURL] ,
238243 filespace. suggestions. count > 1
239244 else { return }
@@ -245,7 +250,7 @@ extension Workspace {
245250
246251 func selectPreviousSuggestion( forFileAt fileURL: URL ) {
247252 cancelInFlightRealtimeSuggestionRequests ( )
248- lastTriggerDate = Environment . now ( )
253+ refreshUpdateTime ( )
249254 guard let filespace = filespaces [ fileURL] ,
250255 filespace. suggestions. count > 1
251256 else { return }
@@ -257,7 +262,7 @@ extension Workspace {
257262
258263 func rejectSuggestion( forFileAt fileURL: URL , editor: EditorContent ? ) {
259264 cancelInFlightRealtimeSuggestionRequests ( )
260- lastTriggerDate = Environment . now ( )
265+ refreshUpdateTime ( )
261266
262267 if let editor, !editor. uti. isEmpty {
263268 filespaces [ fileURL] ? . uti = editor. uti
@@ -273,7 +278,7 @@ extension Workspace {
273278
274279 func acceptSuggestion( forFileAt fileURL: URL , editor: EditorContent ? ) -> CopilotCompletion ? {
275280 cancelInFlightRealtimeSuggestionRequests ( )
276- lastTriggerDate = Environment . now ( )
281+ refreshUpdateTime ( )
277282 guard let filespace = filespaces [ fileURL] ,
278283 !filespace. suggestions. isEmpty,
279284 filespace. suggestionIndex >= 0 ,
@@ -301,7 +306,7 @@ extension Workspace {
301306 }
302307
303308 func notifyOpenFile( filespace: Filespace ) {
304- lastTriggerDate = Environment . now ( )
309+ refreshUpdateTime ( )
305310 Task {
306311 try await copilotSuggestionService? . notifyOpenTextDocument (
307312 fileURL: filespace. fileURL,
@@ -312,7 +317,7 @@ extension Workspace {
312317
313318 func notifyUpdateFile( filespace: Filespace , content: String ) {
314319 filespace. refreshUpdateTime ( )
315- lastTriggerDate = Environment . now ( )
320+ refreshUpdateTime ( )
316321 Task {
317322 try await copilotSuggestionService? . notifyChangeTextDocument (
318323 fileURL: filespace. fileURL,
@@ -323,7 +328,7 @@ extension Workspace {
323328
324329 func notifySaveFile( filespace: Filespace ) {
325330 filespace. refreshUpdateTime ( )
326- lastTriggerDate = Environment . now ( )
331+ refreshUpdateTime ( )
327332 Task {
328333 try await copilotSuggestionService? . notifySaveTextDocument ( fileURL: filespace. fileURL)
329334 }
0 commit comments