11import AppKit
22import ChatService
3- import Environment
43import Foundation
54import GitHubCopilotService
65import LanguageServerProtocol
@@ -12,6 +11,7 @@ import SuggestionWidget
1211import UserNotifications
1312import Workspace
1413import WorkspaceSuggestionService
14+ import XcodeInspector
1515import XPCShared
1616
1717struct WindowBaseCommandHandler : SuggestionCommandHandler {
@@ -39,7 +39,7 @@ struct WindowBaseCommandHandler: SuggestionCommandHandler {
3939 defer {
4040 presenter. markAsProcessing ( false )
4141 }
42- let fileURL = try await Environment . fetchCurrentFileURL ( )
42+ guard let fileURL = XcodeInspector . shared . realtimeActiveDocumentURL else { return }
4343 let ( workspace, filespace) = try await Service . shared. workspacePool
4444 . fetchOrCreateWorkspaceAndFilespace ( fileURL: fileURL)
4545
@@ -82,7 +82,7 @@ struct WindowBaseCommandHandler: SuggestionCommandHandler {
8282 private func _presentNextSuggestion( editor: EditorContent ) async throws {
8383 presenter. markAsProcessing ( true )
8484 defer { presenter. markAsProcessing ( false ) }
85- let fileURL = try await Environment . fetchCurrentFileURL ( )
85+ guard let fileURL = XcodeInspector . shared . realtimeActiveDocumentURL else { return }
8686 let ( workspace, filespace) = try await Service . shared. workspacePool
8787 . fetchOrCreateWorkspaceAndFilespace ( fileURL: fileURL)
8888 workspace. selectNextSuggestion ( forFileAt: fileURL)
@@ -109,7 +109,7 @@ struct WindowBaseCommandHandler: SuggestionCommandHandler {
109109 private func _presentPreviousSuggestion( editor: EditorContent ) async throws {
110110 presenter. markAsProcessing ( true )
111111 defer { presenter. markAsProcessing ( false ) }
112- let fileURL = try await Environment . fetchCurrentFileURL ( )
112+ guard let fileURL = XcodeInspector . shared . realtimeActiveDocumentURL else { return }
113113 let ( workspace, filespace) = try await Service . shared. workspacePool
114114 . fetchOrCreateWorkspaceAndFilespace ( fileURL: fileURL)
115115 workspace. selectPreviousSuggestion ( forFileAt: fileURL)
@@ -136,7 +136,7 @@ struct WindowBaseCommandHandler: SuggestionCommandHandler {
136136 private func _rejectSuggestion( editor: EditorContent ) async throws {
137137 presenter. markAsProcessing ( true )
138138 defer { presenter. markAsProcessing ( false ) }
139- let fileURL = try await Environment . fetchCurrentFileURL ( )
139+ guard let fileURL = XcodeInspector . shared . realtimeActiveDocumentURL else { return }
140140
141141 let ( workspace, _) = try await Service . shared. workspacePool
142142 . fetchOrCreateWorkspaceAndFilespace ( fileURL: fileURL)
@@ -149,7 +149,7 @@ struct WindowBaseCommandHandler: SuggestionCommandHandler {
149149 presenter. markAsProcessing ( true )
150150 defer { presenter. markAsProcessing ( false ) }
151151
152- let fileURL = try await Environment . fetchCurrentFileURL ( )
152+ guard let fileURL = XcodeInspector . shared . realtimeActiveDocumentURL else { return nil }
153153 let ( workspace, _) = try await Service . shared. workspacePool
154154 . fetchOrCreateWorkspaceAndFilespace ( fileURL: fileURL)
155155
@@ -185,7 +185,7 @@ struct WindowBaseCommandHandler: SuggestionCommandHandler {
185185 presenter. markAsProcessing ( true )
186186 defer { presenter. markAsProcessing ( false ) }
187187
188- let fileURL = try await Environment . fetchCurrentFileURL ( )
188+ guard let fileURL = XcodeInspector . shared . realtimeActiveDocumentURL else { return nil }
189189
190190 let injector = SuggestionInjector ( )
191191 var lines = editor. lines
@@ -260,7 +260,7 @@ struct WindowBaseCommandHandler: SuggestionCommandHandler {
260260
261261 @WorkspaceActor
262262 func prepareCache( editor: EditorContent ) async throws -> UpdatedContent ? {
263- let fileURL = try await Environment . fetchCurrentFileURL ( )
263+ guard let fileURL = XcodeInspector . shared . realtimeActiveDocumentURL else { return nil }
264264 let ( _, filespace) = try await Service . shared. workspacePool
265265 . fetchOrCreateWorkspaceAndFilespace ( fileURL: fileURL)
266266 filespace. codeMetadata. uti = editor. uti
@@ -365,7 +365,7 @@ extension WindowBaseCommandHandler {
365365 ) async throws {
366366 presenter. markAsProcessing ( true )
367367 defer { presenter. markAsProcessing ( false ) }
368- let fileURL = try await Environment . fetchCurrentFileURL ( )
368+ guard let fileURL = XcodeInspector . shared . realtimeActiveDocumentURL else { return }
369369 let ( workspace, filespace) = try await Service . shared. workspacePool
370370 . fetchOrCreateWorkspaceAndFilespace ( fileURL: fileURL)
371371 guard workspace. suggestionPlugin? . isSuggestionFeatureEnabled ?? false else {
@@ -425,7 +425,7 @@ extension WindowBaseCommandHandler {
425425 usesTabsForIndentation: filespace. codeMetadata. usesTabsForIndentation ?? false ,
426426 documentURL: fileURL,
427427 projectRootURL: workspace. projectRootURL,
428- allCode: editor. content,
428+ allCode: editor. content,
429429 allLines: editor. lines,
430430 isContinuous: isContinuous,
431431 commandName: name,
0 commit comments