From e30ea43a14b2fa26145bf724073406585e6a9fc8 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Thu, 16 Mar 2023 09:29:43 +0100 Subject: [PATCH] Include loaded languages when computing lsp workspace configuration --- crates/language/src/language.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/crates/language/src/language.rs b/crates/language/src/language.rs index 59fca33fb603369281c7acde19dd8afb7208f0ef..cb4f5c7b87eb9be49f873857da5f5a22ed2293d6 100644 --- a/crates/language/src/language.rs +++ b/crates/language/src/language.rs @@ -133,6 +133,13 @@ impl CachedLspAdapter { self.adapter.cached_server_binary(container_dir).await } + pub fn workspace_configuration( + &self, + cx: &mut MutableAppContext, + ) -> Option> { + self.adapter.workspace_configuration(cx) + } + pub async fn process_diagnostics(&self, params: &mut lsp::PublishDiagnosticsParams) { self.adapter.process_diagnostics(params).await } @@ -557,6 +564,13 @@ impl LanguageRegistry { } } } + for language in self.languages.read().iter() { + if let Some(adapter) = language.lsp_adapter() { + if let Some(language_config) = adapter.workspace_configuration(cx) { + language_configs.push(language_config); + } + } + } cx.background().spawn(async move { let mut config = serde_json::json!({});