@@ -72,9 +72,9 @@ public final class Workspace {
7272 public let workspaceURL : URL
7373 public let projectRootURL : URL
7474 public let openedFileRecoverableStorage : OpenedFileRecoverableStorage
75- public private( set) var lastSuggestionUpdateTime = Environment . now ( )
75+ public private( set) var lastLastUpdateTime = Environment . now ( )
7676 public var isExpired : Bool {
77- Environment . now ( ) . timeIntervalSince ( lastSuggestionUpdateTime ) > 60 * 60 * 1
77+ Environment . now ( ) . timeIntervalSince ( lastLastUpdateTime ) > 60 * 60 * 1
7878 }
7979
8080 public private( set) var filespaces = [ URL: Filespace] ( )
@@ -113,7 +113,7 @@ public final class Workspace {
113113 }
114114
115115 public func refreshUpdateTime( ) {
116- lastSuggestionUpdateTime = Environment . now ( )
116+ lastLastUpdateTime = Environment . now ( )
117117 }
118118
119119 @WorkspaceActor
@@ -123,24 +123,18 @@ public final class Workspace {
123123 fileURL: fileURL,
124124 onSave: { [ weak self] filespace in
125125 guard let self else { return }
126- for plugin in self . plugins. values {
127- plugin. didSaveFilespace ( filespace)
128- }
126+ self . didSaveFilespace ( filespace)
129127 } ,
130128 onClose: { [ weak self] url in
131129 guard let self else { return }
132- for plugin in self . plugins. values {
133- plugin. didCloseFilespace ( url)
134- }
130+ self . didCloseFilespace ( url)
135131 }
136132 )
137133 if filespaces [ fileURL] == nil {
138134 filespaces [ fileURL] = filespace
139135 }
140136 if existedFilespace == nil {
141- for plugin in plugins. values {
142- plugin. didOpenFilespace ( filespace)
143- }
137+ didOpenFilespace ( filespace)
144138 } else {
145139 filespace. refreshUpdateTime ( )
146140 }
@@ -154,10 +148,37 @@ public final class Workspace {
154148
155149 @WorkspaceActor
156150 public func didUpdateFilespace( fileURL: URL , content: String ) {
151+ refreshUpdateTime ( )
157152 guard let filespace = filespaces [ fileURL] else { return }
153+ filespace. refreshUpdateTime ( )
158154 for plugin in plugins. values {
159155 plugin. didUpdateFilespace ( filespace, content: content)
160156 }
161157 }
158+
159+ @WorkspaceActor
160+ func didOpenFilespace( _ filespace: Filespace ) {
161+ refreshUpdateTime ( )
162+ openedFileRecoverableStorage. openFile ( fileURL: filespace. fileURL)
163+ for plugin in plugins. values {
164+ plugin. didOpenFilespace ( filespace)
165+ }
166+ }
167+
168+ @WorkspaceActor
169+ func didCloseFilespace( _ fileURL: URL ) {
170+ for plugin in self . plugins. values {
171+ plugin. didCloseFilespace ( fileURL)
172+ }
173+ }
174+
175+ @WorkspaceActor
176+ func didSaveFilespace( _ filespace: Filespace ) {
177+ refreshUpdateTime ( )
178+ filespace. refreshUpdateTime ( )
179+ for plugin in plugins. values {
180+ plugin. didSaveFilespace ( filespace)
181+ }
182+ }
162183}
163184
0 commit comments