pylsp: Tweak default user settings (#21025)
Piotr Osiewicz
created 1 year ago
I've also looked into not creating temp dirs in project directories and
succeeded at that for Mypy; no dice for rope though, I'll have to send a
patch to pylsp to fix that.
Closes #20646
Release Notes:
- Python: tweaked default pylsp settings to be less noisy (mypy and
pycodestyle are no longer enabled by default).
Change summary
crates/languages/src/python.rs | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
Detailed changes
@@ -917,13 +917,17 @@ impl LspAdapter for PyLspAdapter {
.unwrap_or_else(|| {
json!({
"plugins": {
- "rope_autoimport": {"enabled": true},
- "mypy": {"enabled": true}
- }
+ "pycodestyle": {"enabled": false},
+ "rope_autoimport": {"enabled": true, "memory": true},
+ "mypy": {"enabled": false}
+ },
+ "rope": {
+ "ropeFolder": null
+ },
})
});
- // If python.pythonPath is not set in user config, do so using our toolchain picker.
+ // If user did not explicitly modify their python venv, use one from picker.
if let Some(toolchain) = toolchain {
if user_settings.is_null() {
user_settings = Value::Object(serde_json::Map::default());
@@ -939,23 +943,22 @@ impl LspAdapter for PyLspAdapter {
.or_insert(Value::Object(serde_json::Map::default()))
.as_object_mut()
{
- jedi.insert(
- "environment".to_string(),
- Value::String(toolchain.path.clone().into()),
- );
+ jedi.entry("environment".to_string())
+ .or_insert_with(|| Value::String(toolchain.path.clone().into()));
}
if let Some(pylint) = python
.entry("mypy")
.or_insert(Value::Object(serde_json::Map::default()))
.as_object_mut()
{
- pylint.insert(
- "overrides".to_string(),
+ pylint.entry("overrides".to_string()).or_insert_with(|| {
Value::Array(vec![
Value::String("--python-executable".into()),
Value::String(toolchain.path.into()),
- ]),
- );
+ Value::String("--cache-dir=/dev/null".into()),
+ Value::Bool(true),
+ ])
+ });
}
}
}