Skip to content

Commit e9d3f5e

Browse files
committed
Disable prompt to code for projects not enabled
1 parent fafb0eb commit e9d3f5e

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

Core/Sources/Service/SuggestionCommandHandler/WindowBaseCommandHandler.swift

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff 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,

Core/Sources/Service/Workspace.swift

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff 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) {

0 commit comments

Comments
 (0)