From bf9dd6bbefcfff1e8d9dc1da45d4ff0eb1354713 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Tue, 30 Sep 2025 10:19:23 +0200 Subject: [PATCH] python: Fix user settings not getting passed on for Ty (#39174) Closes #39144 Release Notes: - python: Fixed user settings not being respected with Ty language server. --- crates/languages/src/python.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/crates/languages/src/python.rs b/crates/languages/src/python.rs index cca06f09a55a538490c49c59a3671b3842ea1bf4..a1ca9a20d846c1c7f7dca309ccd7b0824ca0d42e 100644 --- a/crates/languages/src/python.rs +++ b/crates/languages/src/python.rs @@ -154,11 +154,16 @@ impl LspAdapter for TyLspAdapter { async fn workspace_configuration( self: Arc, - _: &Arc, + delegate: &Arc, toolchain: Option, - _cx: &mut AsyncApp, + cx: &mut AsyncApp, ) -> Result { - let mut ret = json!({}); + let mut ret = cx + .update(|cx| { + language_server_settings(delegate.as_ref(), &self.name(), cx) + .and_then(|s| s.settings.clone()) + })? + .unwrap_or_else(|| json!({})); if let Some(toolchain) = toolchain.and_then(|toolchain| { serde_json::from_value::(toolchain.as_json).ok() }) { @@ -171,10 +176,9 @@ impl LspAdapter for TyLspAdapter { "sysPrefix": sys_prefix } }); - ret.as_object_mut()?.insert( - "pythonExtension".into(), - json!({ "activeEnvironment": environment }), - ); + ret.as_object_mut()? + .entry("pythonExtension") + .or_insert_with(|| json!({ "activeEnvironment": environment })); Some(()) }); } @@ -463,7 +467,6 @@ impl LspAdapter for PyrightLspAdapter { async fn workspace_configuration( self: Arc, - adapter: &Arc, toolchain: Option, cx: &mut AsyncApp,