Skip to content

Commit 57b9512

Browse files
committed
Match the develop branch CopilotForXcodeKit
1 parent 25c8b6b commit 57b9512

6 files changed

Lines changed: 28 additions & 27 deletions

File tree

Pro

Submodule Pro updated from f3c9528 to 23dc172

Tool/Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ let package = Package(
7171
url: "https://github.com/intitni/generative-ai-swift",
7272
branch: "support-setting-base-url"
7373
),
74-
.package(url: "https://github.com/intitni/CopilotForXcodeKit", from: "0.4.0"),
74+
.package(url: "https://github.com/intitni/CopilotForXcodeKit", branch: "develop"),
7575

7676
// TreeSitter
7777
.package(url: "https://github.com/intitni/SwiftTreeSitter.git", branch: "main"),

Tool/Sources/BuiltinExtension/BuiltinExtensionManager.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import XcodeInspector
55

66
public final class BuiltinExtensionManager {
77
public static let shared: BuiltinExtensionManager = .init()
8-
private(set) var extensions: [BuiltinExtension] = []
8+
private(set) var extensions: [any BuiltinExtension] = []
99

1010
private var cancellable: Set<AnyCancellable> = []
1111

@@ -17,7 +17,7 @@ public final class BuiltinExtensionManager {
1717
}.store(in: &cancellable)
1818
}
1919

20-
public func setupExtensions(_ extensions: [BuiltinExtension]) {
20+
public func setupExtensions(_ extensions: [any BuiltinExtension]) {
2121
self.extensions = extensions
2222
checkAppConfiguration()
2323
}
@@ -36,9 +36,9 @@ extension BuiltinExtensionManager {
3636
let isSuggestionFeatureInUse = suggestionFeatureProvider ==
3737
.builtIn(ext.suggestionServiceId)
3838
let isChatFeatureInUse = false
39-
ext.appConfigurationDidChange(.init(
40-
suggestionServiceInUse: isSuggestionFeatureInUse,
41-
chatServiceInUse: isChatFeatureInUse
39+
ext.extensionUsageDidChange(.init(
40+
isSuggestionServiceInUse: isSuggestionFeatureInUse,
41+
isChatServiceInUse: isChatFeatureInUse
4242
))
4343
}
4444
}

Tool/Sources/BuiltinExtension/BuiltinExtensionWorkspacePlugin.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public final class BuiltinExtensionWorkspacePlugin: WorkspacePlugin {
5252
for ext in extensionManager.extensions {
5353
ext.workspace(
5454
.init(workspaceURL: workspaceURL, projectURL: projectRootURL),
55-
didUpdateDocumentAt: filespace.fileURL,
55+
didUpdateDocumentAt: filespace.fileURL,
5656
content: content
5757
)
5858
}

Tool/Sources/CodeiumService/CodeiumExtension.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ public final class CodeiumExtension: BuiltinExtension {
1111
public var suggestionService: SuggestionServiceType? { _suggestionService }
1212
public var chatService: ChatServiceType? { nil }
1313
public var promptToCodeService: PromptToCodeServiceType? { nil }
14-
private var appConfiguration = AppConfiguration(
15-
suggestionServiceInUse: false,
16-
chatServiceInUse: false
14+
private var extensionUsage = ExtensionUsage(
15+
isSuggestionServiceInUse: false,
16+
isChatServiceInUse: false
1717
)
1818
private var isLanguageServerInUse: Bool {
19-
appConfiguration.suggestionServiceInUse || appConfiguration.chatServiceInUse
19+
extensionUsage.isSuggestionServiceInUse || extensionUsage.isChatServiceInUse
2020
}
21-
21+
2222
let workspacePool: WorkspacePool
2323

2424
let serviceLocator: ServiceLocator
@@ -73,7 +73,7 @@ public final class CodeiumExtension: BuiltinExtension {
7373
public func workspace(
7474
_ workspace: WorkspaceInfo,
7575
didUpdateDocumentAt documentURL: URL,
76-
content: String
76+
content: String?
7777
) {
7878
guard isLanguageServerInUse else { return }
7979
// check if file size is larger than 15MB, if so, return immediately
@@ -85,7 +85,7 @@ public final class CodeiumExtension: BuiltinExtension {
8585

8686
Task {
8787
do {
88-
let content = try String(contentsOf: documentURL, encoding: .utf8)
88+
guard let content else { return }
8989
guard let service = await serviceLocator.getService(from: workspace) else { return }
9090
try await service.notifyOpenTextDocument(fileURL: documentURL, content: content)
9191
} catch {
@@ -94,9 +94,9 @@ public final class CodeiumExtension: BuiltinExtension {
9494
}
9595
}
9696

97-
public func appConfigurationDidChange(_ configuration: AppConfiguration) {
98-
appConfiguration = configuration
99-
if !configuration.chatServiceInUse && !configuration.suggestionServiceInUse {
97+
public func extensionUsageDidChange(_ usage: ExtensionUsage) {
98+
extensionUsage = usage
99+
if !usage.isChatServiceInUse && !usage.isSuggestionServiceInUse {
100100
for workspace in workspacePool.workspaces.values {
101101
guard let plugin = workspace.plugin(for: CodeiumWorkspacePlugin.self)
102102
else { continue }

Tool/Sources/GitHubCopilotService/GitHubCopilotExtension.swift

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@ public final class GitHubCopilotExtension: BuiltinExtension {
1111
public var suggestionService: SuggestionServiceType? { _suggestionService }
1212
public var chatService: ChatServiceType? { nil }
1313
public var promptToCodeService: PromptToCodeServiceType? { nil }
14-
private var appConfiguration = AppConfiguration(
15-
suggestionServiceInUse: false,
16-
chatServiceInUse: false
14+
private var extensionUsage = ExtensionUsage(
15+
isSuggestionServiceInUse: false,
16+
isChatServiceInUse: false
1717
)
1818
private var isLanguageServerInUse: Bool {
19-
appConfiguration.suggestionServiceInUse || appConfiguration.chatServiceInUse
19+
extensionUsage.isSuggestionServiceInUse || extensionUsage.isChatServiceInUse
2020
}
21+
2122
let workspacePool: WorkspacePool
2223

2324
let serviceLocator: ServiceLocator
@@ -80,7 +81,7 @@ public final class GitHubCopilotExtension: BuiltinExtension {
8081
public func workspace(
8182
_ workspace: WorkspaceInfo,
8283
didUpdateDocumentAt documentURL: URL,
83-
content: String
84+
content: String?
8485
) {
8586
guard isLanguageServerInUse else { return }
8687
// check if file size is larger than 15MB, if so, return immediately
@@ -92,7 +93,7 @@ public final class GitHubCopilotExtension: BuiltinExtension {
9293

9394
Task {
9495
do {
95-
let content = try String(contentsOf: documentURL, encoding: .utf8)
96+
guard let content else { return }
9697
guard let service = await serviceLocator.getService(from: workspace) else { return }
9798
try await service.notifyOpenTextDocument(fileURL: documentURL, content: content)
9899
} catch {
@@ -101,9 +102,9 @@ public final class GitHubCopilotExtension: BuiltinExtension {
101102
}
102103
}
103104

104-
public func appConfigurationDidChange(_ configuration: AppConfiguration) {
105-
appConfiguration = configuration
106-
if !configuration.chatServiceInUse && !configuration.suggestionServiceInUse {
105+
public func extensionUsageDidChange(_ usage: ExtensionUsage) {
106+
extensionUsage = usage
107+
if !usage.isChatServiceInUse && !usage.isSuggestionServiceInUse {
107108
for workspace in workspacePool.workspaces.values {
108109
guard let plugin = workspace.plugin(for: GitHubCopilotWorkspacePlugin.self)
109110
else { continue }

0 commit comments

Comments
 (0)