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,