File tree Expand file tree Collapse file tree
Core/Sources/SuggestionService
WorkspaceSuggestionService Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -118,6 +118,13 @@ public extension SuggestionService {
118118 eventHandlers. forEach { $0. didReject ( suggestions, workspaceInfo: workspaceInfo) }
119119 await suggestionProvider. notifyRejected ( suggestions, workspaceInfo: workspaceInfo)
120120 }
121+
122+ func notifyDismissed(
123+ _ suggestions: [ SuggestionBasic . CodeSuggestion ] ,
124+ workspaceInfo: CopilotForXcodeKit . WorkspaceInfo
125+ ) async {
126+ eventHandlers. forEach { $0. didDismiss ( suggestions, workspaceInfo: workspaceInfo) }
127+ }
121128
122129 func cancelRequest( workspaceInfo: CopilotForXcodeKit . WorkspaceInfo ) async {
123130 await suggestionProvider. cancelRequest ( workspaceInfo: workspaceInfo)
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ import SuggestionBasic
55public protocol SuggestionServiceEventHandler {
66 func didAccept( _ suggestion: SuggestionBasic . CodeSuggestion , workspaceInfo: WorkspaceInfo )
77 func didReject( _ suggestions: [ SuggestionBasic . CodeSuggestion ] , workspaceInfo: WorkspaceInfo )
8+ func didDismiss( _ suggestions: [ SuggestionBasic . CodeSuggestion ] , workspaceInfo: WorkspaceInfo )
89}
910
1011public enum SuggestionServiceEventHandlerContainer {
Original file line number Diff line number Diff line change @@ -19,6 +19,10 @@ public protocol SuggestionServiceType {
1919 _ suggestions: [ CodeSuggestion ] ,
2020 workspaceInfo: CopilotForXcodeKit . WorkspaceInfo
2121 ) async
22+ func notifyDismissed(
23+ _ suggestions: [ CodeSuggestion ] ,
24+ workspaceInfo: CopilotForXcodeKit . WorkspaceInfo
25+ ) async
2226 func cancelRequest( workspaceInfo: CopilotForXcodeKit . WorkspaceInfo ) async
2327
2428 var configuration : SuggestionServiceConfiguration { get async }
@@ -230,7 +234,26 @@ public extension Workspace {
230234 func dismissSuggestions( forFileAt fileURL: URL ) {
231235 refreshUpdateTime ( )
232236 guard let filespace = filespaces [ fileURL] else { return }
237+ let displayedSuggestions = filespace. suggestionManager? . displaySuggestions. flatMap {
238+ switch $0 {
239+ case let . action( action) :
240+ return [ action. suggestion]
241+ case let . group( group) :
242+ return group. suggestions
243+ }
244+ } ?? [ ]
245+
233246 filespace. suggestionManager? . invalidateDisplaySuggestions ( )
247+
248+ Task {
249+ await suggestionService? . notifyDismissed (
250+ displayedSuggestions,
251+ workspaceInfo: . init(
252+ workspaceURL: workspaceURL,
253+ projectURL: projectRootURL
254+ )
255+ )
256+ }
234257 }
235258}
236259
You can’t perform that action at this time.
0 commit comments