From 02d5f320ad621e92cafaa7075f61e6496e12cd98 Mon Sep 17 00:00:00 2001 From: Thorsten Ball Date: Thu, 12 Sep 2024 10:02:45 -0400 Subject: [PATCH] lsp: Fix initialization_options being used as workspace configuration (#17757) Release Notes: - Fixed user-configured `initialization_options` being passed as `workspace/Configuration` for the vtsls, TypeScript, and YAML language servers. Co-authored-by: Bennet --- crates/languages/src/typescript.rs | 2 +- crates/languages/src/vtsls.rs | 17 +++-------------- crates/languages/src/yaml.rs | 2 +- 3 files changed, 5 insertions(+), 16 deletions(-) diff --git a/crates/languages/src/typescript.rs b/crates/languages/src/typescript.rs index 14b6303f5c..cc52df2922 100644 --- a/crates/languages/src/typescript.rs +++ b/crates/languages/src/typescript.rs @@ -240,7 +240,7 @@ impl LspAdapter for TypeScriptLspAdapter { ) -> Result { let override_options = cx.update(|cx| { language_server_settings(delegate.as_ref(), Self::SERVER_NAME, cx) - .and_then(|s| s.initialization_options.clone()) + .and_then(|s| s.settings.clone()) })?; if let Some(options) = override_options { return Ok(options); diff --git a/crates/languages/src/vtsls.rs b/crates/languages/src/vtsls.rs index 744405642d..f3b46d2685 100644 --- a/crates/languages/src/vtsls.rs +++ b/crates/languages/src/vtsls.rs @@ -13,7 +13,7 @@ use std::{ path::{Path, PathBuf}, sync::Arc, }; -use util::{maybe, merge_json_value_into, ResultExt}; +use util::{maybe, ResultExt}; fn typescript_server_binary_arguments(server_path: &Path) -> Vec { vec![server_path.into(), "--stdio".into()] @@ -271,20 +271,9 @@ impl LspAdapter for VtslsLspAdapter { ) -> Result { let override_options = cx.update(|cx| { language_server_settings(delegate.as_ref(), SERVER_NAME, cx) - .and_then(|s| s.initialization_options.clone()) + .and_then(|s| s.settings.clone()) })?; - if let Some(options) = override_options { - return Ok(options); - } - let mut initialization_options = self - .initialization_options(delegate) - .await - .map(|o| o.unwrap())?; - - if let Some(override_options) = override_options { - merge_json_value_into(override_options, &mut initialization_options) - } - Ok(initialization_options) + Ok(override_options.unwrap_or_default()) } fn language_ids(&self) -> HashMap { diff --git a/crates/languages/src/yaml.rs b/crates/languages/src/yaml.rs index b75b3c7226..06360847ac 100644 --- a/crates/languages/src/yaml.rs +++ b/crates/languages/src/yaml.rs @@ -146,7 +146,7 @@ impl LspAdapter for YamlLspAdapter { let project_options = cx.update(|cx| { language_server_settings(delegate.as_ref(), Self::SERVER_NAME, cx) - .and_then(|s| s.initialization_options.clone()) + .and_then(|s| s.settings.clone()) })?; if let Some(override_options) = project_options { merge_json_value_into(override_options, &mut options);