Skip to content

Commit c446fd7

Browse files
committed
Add preference key for suggestion feature provider
1 parent f25057c commit c446fd7

File tree

2 files changed

+36
-23
lines changed

2 files changed

+36
-23
lines changed

Core/Sources/Preferences/Keys.swift

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,6 @@ public protocol UserDefaultPreferenceKey {
99
public struct UserDefaultPreferenceKeys {
1010
public init() {}
1111

12-
// MARK: - Node Path
13-
14-
public struct NodePath: UserDefaultPreferenceKey {
15-
public let defaultValue: String = ""
16-
public let key = "NodePath"
17-
}
18-
19-
public var nodePath: NodePath { .init() }
20-
21-
// MARK: - Run Node With
22-
23-
public struct RunNodeWithKey: UserDefaultPreferenceKey {
24-
public let defaultValue = NodeRunner.bash
25-
public let key = "RunNodeWith"
26-
}
27-
28-
public var runNodeWith: RunNodeWithKey { .init() }
29-
3012
// MARK: - Realtime Suggestion
3113

3214
public struct RealtimeSuggestionToggle: UserDefaultPreferenceKey {
@@ -35,6 +17,15 @@ public struct UserDefaultPreferenceKeys {
3517
}
3618

3719
public var realtimeSuggestionToggle: RealtimeSuggestionToggle { .init() }
20+
21+
// MARK: - Suggestion Feature Provider
22+
23+
public struct SuggestionFeatureProviderKey: UserDefaultPreferenceKey {
24+
public let defaultValue: SuggestionFeatureProvider = .gitHubCopilot
25+
public let key = "SuggestionFeatureProvider"
26+
}
27+
28+
public var suggestionFeatureProvider: SuggestionFeatureProviderKey { .init() }
3829

3930
// MARK: - Realtime Suggestion Debounce
4031

@@ -239,6 +230,24 @@ public extension UserDefaultPreferenceKeys {
239230
}
240231

241232
var gitHubCopilotVerboseLog: GitHubCopilotVerboseLog { .init() }
233+
234+
// MARK: - Node Path
235+
236+
struct NodePath: UserDefaultPreferenceKey {
237+
public let defaultValue: String = ""
238+
public let key = "NodePath"
239+
}
240+
241+
var nodePath: NodePath { .init() }
242+
243+
// MARK: - Run Node With
244+
245+
struct RunNodeWithKey: UserDefaultPreferenceKey {
246+
public let defaultValue = NodeRunner.bash
247+
public let key = "RunNodeWith"
248+
}
249+
250+
var runNodeWith: RunNodeWithKey { .init() }
242251
}
243252

244253
// MARK: - UI
@@ -250,14 +259,14 @@ public extension UserDefaultPreferenceKeys {
250259
}
251260

252261
var suggestionCodeFontSize: SuggestionCodeFontSize { .init() }
253-
262+
254263
struct ChatFontSize: UserDefaultPreferenceKey {
255264
public let defaultValue = 12 as Double
256265
public let key = "ChatFontSize"
257266
}
258267

259268
var chatFontSize: ChatFontSize { .init() }
260-
269+
261270
struct ChatCodeFontSize: UserDefaultPreferenceKey {
262271
public let defaultValue = 12 as Double
263272
public let key = "ChatCodeFontSize"
@@ -317,7 +326,7 @@ public enum FeatureFlags {
317326
public let defaultValue = true
318327
public let key = "FeatureFlag-UseCustomScrollViewWorkaround"
319328
}
320-
329+
321330
public struct TriggerActionWithAccessibilityAPI: UserDefaultPreferenceKey {
322331
public let defaultValue = true
323332
public let key = "FeatureFlag-TriggerActionWithAccessibilityAPI"
@@ -330,5 +339,7 @@ public extension UserDefaultPreferenceKeys {
330339
var runNodeWithInteractiveLoggedInShell: FeatureFlags
331340
.RunNodeWithInteractiveLoggedInShell { .init() }
332341
var useCustomScrollViewWorkaround: FeatureFlags.UseCustomScrollViewWorkaround { .init() }
333-
var triggerActionWithAccessibilityAPI: FeatureFlags.TriggerActionWithAccessibilityAPI { .init() }
342+
var triggerActionWithAccessibilityAPI: FeatureFlags
343+
.TriggerActionWithAccessibilityAPI { .init() }
334344
}
345+

Core/Sources/SuggestionService/SuggestionService.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ public final class SuggestionService: SuggestionServiceType {
3232

3333
var codeiumService: CodeiumSuggestionServiceType?
3434

35-
var serviceType: SuggestionFeatureProvider { .codeium }
35+
var serviceType: SuggestionFeatureProvider {
36+
UserDefaults.shared.value(for: \.suggestionFeatureProvider)
37+
}
3638

3739
public init(projectRootURL: URL, onServiceLaunched: @escaping (SuggestionServiceType) -> Void) {
3840
self.projectRootURL = projectRootURL

0 commit comments

Comments
 (0)