File tree Expand file tree Collapse file tree 2 files changed +17
-3
lines changed
Expand file tree Collapse file tree 2 files changed +17
-3
lines changed Original file line number Diff line number Diff line change @@ -348,7 +348,13 @@ struct WindowBaseCommandHandler: SuggestionCommandHandler {
348348 presenter. markAsProcessing ( true )
349349 defer { presenter. markAsProcessing ( false ) }
350350 let fileURL = try await Environment . fetchCurrentFileURL ( )
351- let projectURL = try await Environment . fetchCurrentProjectRootURL ( fileURL)
351+ let ( workspace, _) = try await Workspace
352+ . fetchOrCreateWorkspaceIfNeeded ( fileURL: fileURL)
353+ guard workspace. isSuggestionFeatureEnabled else {
354+ presenter. presentErrorMessage ( " Prompt to code is disabled for this project " )
355+ return
356+ }
357+
352358 let codeLanguage = languageIdentifierFromFileURL ( fileURL)
353359
354360 let ( code, selection) = {
@@ -371,7 +377,7 @@ struct WindowBaseCommandHandler: SuggestionCommandHandler {
371377
372378 _ = await WidgetDataSource . shared. createPromptToCode (
373379 for: fileURL,
374- projectURL: projectURL ?? fileURL ,
380+ projectURL: workspace . projectRootURL ,
375381 selectedCode: code,
376382 allCode: editor. content,
377383 selectionRange: selection,
Original file line number Diff line number Diff line change @@ -109,7 +109,15 @@ final class Workspace {
109109 }
110110
111111 var isSuggestionFeatureEnabled : Bool {
112- copilotSuggestionService != nil
112+ let isSuggestionDisabledGlobally = UserDefaults . shared
113+ . value ( for: \. disableSuggestionFeatureGlobally)
114+ if isSuggestionDisabledGlobally {
115+ let enabledList = UserDefaults . shared. value ( for: \. suggestionFeatureEnabledProjectList)
116+ if !enabledList. contains ( where: { path in projectRootURL. path. hasPrefix ( path) } ) {
117+ return false
118+ }
119+ }
120+ return true
113121 }
114122
115123 private init ( projectRootURL: URL ) {
You can’t perform that action at this time.
0 commit comments