@@ -11,6 +11,13 @@ 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
17+ )
18+ private var isLanguageServerInUse : Bool {
19+ appConfiguration. suggestionServiceInUse || appConfiguration. chatServiceInUse
20+ }
1421 let workspacePool : WorkspacePool
1522
1623 let serviceLocator : ServiceLocator
@@ -27,6 +34,7 @@ public final class GitHubCopilotExtension: BuiltinExtension {
2734 public func workspaceDidClose( _: WorkspaceInfo ) { }
2835
2936 public func workspace( _ workspace: WorkspaceInfo , didOpenDocumentAt documentURL: URL ) {
37+ guard isLanguageServerInUse else { return }
3038 // check if file size is larger than 15MB, if so, return immediately
3139 if let attrs = try ? FileManager . default
3240 . attributesOfItem ( atPath: documentURL. path) ,
@@ -46,6 +54,7 @@ public final class GitHubCopilotExtension: BuiltinExtension {
4654 }
4755
4856 public func workspace( _ workspace: WorkspaceInfo , didSaveDocumentAt documentURL: URL ) {
57+ guard isLanguageServerInUse else { return }
4958 Task {
5059 do {
5160 guard let service = await serviceLocator. getService ( from: workspace) else { return }
@@ -57,6 +66,7 @@ public final class GitHubCopilotExtension: BuiltinExtension {
5766 }
5867
5968 public func workspace( _ workspace: WorkspaceInfo , didCloseDocumentAt documentURL: URL ) {
69+ guard isLanguageServerInUse else { return }
6070 Task {
6171 do {
6272 guard let service = await serviceLocator. getService ( from: workspace) else { return }
@@ -72,6 +82,7 @@ public final class GitHubCopilotExtension: BuiltinExtension {
7282 didUpdateDocumentAt documentURL: URL ,
7383 content: String
7484 ) {
85+ guard isLanguageServerInUse else { return }
7586 // check if file size is larger than 15MB, if so, return immediately
7687 if let attrs = try ? FileManager . default
7788 . attributesOfItem ( atPath: documentURL. path) ,
@@ -91,6 +102,7 @@ public final class GitHubCopilotExtension: BuiltinExtension {
91102 }
92103
93104 public func appConfigurationDidChange( _ configuration: AppConfiguration ) {
105+ appConfiguration = configuration
94106 if !configuration. chatServiceInUse && !configuration. suggestionServiceInUse {
95107 for workspace in workspacePool. workspaces. values {
96108 guard let plugin = workspace. plugin ( for: GitHubCopilotWorkspacePlugin . self)
0 commit comments