@@ -4,6 +4,10 @@ import SuggestionModel
44import SuggestionProvider
55import UserDefaultsObserver
66
7+ #if canImport(ProExtension)
8+ import ProExtension
9+ #endif
10+
711public protocol SuggestionServiceType : SuggestionServiceProvider { }
812
913public actor SuggestionService : SuggestionServiceType {
@@ -15,13 +19,13 @@ public actor SuggestionService: SuggestionServiceType {
1519 let onServiceLaunched : ( SuggestionServiceProvider ) -> Void
1620 let providerChangeObserver = UserDefaultsObserver (
1721 object: UserDefaults . shared,
18- forKeyPaths: [ UserDefaultPreferenceKeys ( ) . suggestionFeatureProvider . key] ,
22+ forKeyPaths: [ UserDefaultPreferenceKeys ( ) . oldSuggestionFeatureProvider . key] ,
1923 context: nil
2024 )
2125
2226 lazy var suggestionProvider : SuggestionServiceProvider = buildService ( )
2327
24- var serviceType : BuiltInSuggestionFeatureProvider {
28+ var serviceType : SuggestionFeatureProvider {
2529 UserDefaults . shared. value ( for: \. suggestionFeatureProvider)
2630 }
2731
@@ -41,13 +45,19 @@ public actor SuggestionService: SuggestionServiceType {
4145 }
4246
4347 func buildService( ) -> SuggestionServiceProvider {
48+ #if canImport(ProExtension)
49+ if let provider = ProExtension . suggestionProviderFactory ( serviceType) {
50+ return provider
51+ }
52+ #endif
53+
4454 switch serviceType {
45- case . codeium:
55+ case . builtIn ( . codeium) :
4656 return CodeiumSuggestionProvider (
4757 projectRootURL: projectRootURL,
4858 onServiceLaunched: onServiceLaunched
4959 )
50- case . gitHubCopilot:
60+ case . builtIn ( . gitHubCopilot) , . extension :
5161 return GitHubCopilotSuggestionProvider (
5262 projectRootURL: projectRootURL,
5363 onServiceLaunched: onServiceLaunched
0 commit comments