44import Foundation
55import PackageDescription
66
7- // MARK: - Pro
8-
9- extension [ Target . Dependency ] {
10- func pro( _ targetNames: [ String ] ) -> [ Target . Dependency ] {
11- if isProIncluded {
12- // include the pro package
13- return self + targetNames. map { Target . Dependency. product ( name: $0, package : " Pro " ) }
14- }
15- return self
16- }
17- }
18-
19- extension [ Package . Dependency ] {
20- var pro : [ Package . Dependency ] {
21- if isProIncluded {
22- // include the pro package
23- return self + [ . package ( path: " ../Pro/Pro " ) ]
24- }
25- return self
26- }
27- }
28-
29- let isProIncluded : Bool = {
30- func isProIncluded( file: StaticString = #file) -> Bool {
31- let filePath = " \( file) "
32- let fileURL = URL ( fileURLWithPath: filePath)
33- let rootURL = fileURL
34- . deletingLastPathComponent ( )
35- . deletingLastPathComponent ( )
36- let confURL = rootURL. appendingPathComponent ( " PLUS " )
37- if !FileManager. default. fileExists ( atPath: confURL. path) {
38- return false
39- }
40- do {
41- if let content = try String (
42- data: Data ( contentsOf: confURL) ,
43- encoding: . utf8
44- ) {
45- if content. hasPrefix ( " YES " ) {
46- return true
47- }
48- }
49- return false
50- } catch {
51- return false
52- }
53- }
54-
55- return isProIncluded ( )
56- } ( )
57-
587// MARK: - Package
598
609let package = Package (
@@ -101,6 +50,8 @@ let package = Package(
10150 // quick hack to support custom UserDefaults
10251 // https://github.com/sindresorhus/KeyboardShortcuts
10352 . package ( url: " https://github.com/intitni/KeyboardShortcuts " , branch: " main " ) ,
53+ . package ( url: " https://github.com/intitni/CGEventOverride " , from: " 1.2.1 " ) ,
54+ . package ( url: " https://github.com/intitni/Highlightr " , branch: " master " ) ,
10455 ] . pro,
10556 targets: [
10657 // MARK: - Main
@@ -110,7 +61,7 @@ let package = Package(
11061 dependencies: [
11162 . product( name: " XPCShared " , package : " Tool " ) ,
11263 . product( name: " SuggestionProvider " , package : " Tool " ) ,
113- . product( name: " SuggestionModel " , package : " Tool " ) ,
64+ . product( name: " SuggestionBasic " , package : " Tool " ) ,
11465 . product( name: " Logger " , package : " Tool " ) ,
11566 . product( name: " Preferences " , package : " Tool " ) ,
11667 ] . pro ( [
@@ -127,12 +78,14 @@ let package = Package(
12778 " ServiceUpdateMigration " ,
12879 " ChatGPTChatTab " ,
12980 " PlusFeatureFlag " ,
81+ " KeyBindingManager " ,
82+ " XcodeThemeController " ,
13083 . product( name: " XPCShared " , package : " Tool " ) ,
13184 . product( name: " SuggestionProvider " , package : " Tool " ) ,
13285 . product( name: " Workspace " , package : " Tool " ) ,
13386 . product( name: " UserDefaultsObserver " , package : " Tool " ) ,
13487 . product( name: " AppMonitoring " , package : " Tool " ) ,
135- . product( name: " SuggestionModel " , package : " Tool " ) ,
88+ . product( name: " SuggestionBasic " , package : " Tool " ) ,
13689 . product( name: " ChatTab " , package : " Tool " ) ,
13790 . product( name: " Logger " , package : " Tool " ) ,
13891 . product( name: " OpenAIService " , package : " Tool " ) ,
@@ -153,7 +106,7 @@ let package = Package(
153106 " SuggestionInjector " ,
154107 . product( name: " XPCShared " , package : " Tool " ) ,
155108 . product( name: " SuggestionProvider " , package : " Tool " ) ,
156- . product( name: " SuggestionModel " , package : " Tool " ) ,
109+ . product( name: " SuggestionBasic " , package : " Tool " ) ,
157110 . product( name: " Preferences " , package : " Tool " ) ,
158111 ]
159112 ) ,
@@ -169,7 +122,7 @@ let package = Package(
169122 . product( name: " SuggestionProvider " , package : " Tool " ) ,
170123 . product( name: " Toast " , package : " Tool " ) ,
171124 . product( name: " SharedUIComponents " , package : " Tool " ) ,
172- . product( name: " SuggestionModel " , package : " Tool " ) ,
125+ . product( name: " SuggestionBasic " , package : " Tool " ) ,
173126 . product( name: " MarkdownUI " , package : " swift-markdown-ui " ) ,
174127 . product( name: " OpenAIService " , package : " Tool " ) ,
175128 . product( name: " Preferences " , package : " Tool " ) ,
@@ -187,15 +140,15 @@ let package = Package(
187140 dependencies: [
188141 . product( name: " UserDefaultsObserver " , package : " Tool " ) ,
189142 . product( name: " Preferences " , package : " Tool " ) ,
190- . product( name: " SuggestionModel " , package : " Tool " ) ,
143+ . product( name: " SuggestionBasic " , package : " Tool " ) ,
191144 . product( name: " SuggestionProvider " , package : " Tool " )
192145 ] . pro ( [
193146 " ProExtension " ,
194147 ] )
195148 ) ,
196149 . target(
197150 name: " SuggestionInjector " ,
198- dependencies: [ . product( name: " SuggestionModel " , package : " Tool " ) ]
151+ dependencies: [ . product( name: " SuggestionBasic " , package : " Tool " ) ]
199152 ) ,
200153 . testTarget(
201154 name: " SuggestionInjectorTests " ,
@@ -208,7 +161,7 @@ let package = Package(
208161 name: " PromptToCodeService " ,
209162 dependencies: [
210163 . product( name: " FocusedCodeFinder " , package : " Tool " ) ,
211- . product( name: " SuggestionModel " , package : " Tool " ) ,
164+ . product( name: " SuggestionBasic " , package : " Tool " ) ,
212165 . product( name: " OpenAIService " , package : " Tool " ) ,
213166 . product( name: " AppMonitoring " , package : " Tool " ) ,
214167 . product( name: " ComposableArchitecture " , package : " swift-composable-architecture " ) ,
@@ -377,6 +330,73 @@ let package = Package(
377330 ] ,
378331 path: " Sources/ChatContextCollectors/SystemInfoChatContextCollector "
379332 ) ,
333+
334+ // MARK: Key Binding
335+
336+ . target(
337+ name: " KeyBindingManager " ,
338+ dependencies: [
339+ . product( name: " Workspace " , package : " Tool " ) ,
340+ . product( name: " Preferences " , package : " Tool " ) ,
341+ . product( name: " Logger " , package : " Tool " ) ,
342+ . product( name: " CGEventOverride " , package : " CGEventOverride " ) ,
343+ . product( name: " AppMonitoring " , package : " Tool " ) ,
344+ . product( name: " UserDefaultsObserver " , package : " Tool " ) ,
345+ ]
346+ ) ,
347+ . testTarget(
348+ name: " KeyBindingManagerTests " ,
349+ dependencies: [ " KeyBindingManager " ]
350+ ) ,
351+
352+ // MARK: Theming
353+
354+ . target(
355+ name: " XcodeThemeController " ,
356+ dependencies: [
357+ . product( name: " Preferences " , package : " Tool " ) ,
358+ . product( name: " AppMonitoring " , package : " Tool " ) ,
359+ . product( name: " Highlightr " , package : " Highlightr " ) ,
360+ ]
361+ ) ,
362+
380363 ]
381364)
382365
366+ extension [ Target . Dependency ] {
367+ func pro( _ targetNames: [ String ] ) -> [ Target . Dependency ] {
368+ if isProIncluded {
369+ // include the pro package
370+ return self + targetNames. map { Target . Dependency. product ( name: $0, package : " Pro " ) }
371+ }
372+ return self
373+ }
374+ }
375+
376+ extension [ Package . Dependency ] {
377+ var pro : [ Package . Dependency ] {
378+ if isProIncluded {
379+ // include the pro package
380+ return self + [ . package ( path: " ../../CopilotForXcodePro/Pro " ) ]
381+ }
382+ return self
383+ }
384+ }
385+
386+ let isProIncluded : Bool = {
387+ func isProIncluded( file: StaticString = #file) -> Bool {
388+ let filePath = " \( file) "
389+ let fileURL = URL ( fileURLWithPath: filePath)
390+ let rootURL = fileURL
391+ . deletingLastPathComponent ( )
392+ . deletingLastPathComponent ( )
393+ . deletingLastPathComponent ( )
394+ let confURL = rootURL. appendingPathComponent ( " PLUS " )
395+ if !FileManager. default. fileExists ( atPath: confURL. path) {
396+ return false
397+ }
398+ return true
399+ }
400+
401+ return isProIncluded ( )
402+ } ( )
0 commit comments