diff options
| author | Lukas Wirth <lukastw97@gmail.com> | 2024-08-07 14:36:22 +0200 |
|---|---|---|
| committer | Lukas Wirth <lukastw97@gmail.com> | 2024-08-07 14:36:22 +0200 |
| commit | f1f048c9c9c7fe88de91f9759adc284f4bf6b1cf (patch) | |
| tree | 337441e9d31e31269c606f97528e8fbbe3beb9eb | |
| parent | dbf2c126a30508fabb75eb03c8147efccd3ba11d (diff) | |
| download | rust-f1f048c9c9c7fe88de91f9759adc284f4bf6b1cf.tar.gz rust-f1f048c9c9c7fe88de91f9759adc284f4bf6b1cf.zip | |
Fix cargo config get env parsing
| -rw-r--r-- | src/tools/rust-analyzer/crates/project-model/src/env.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/tools/rust-analyzer/crates/project-model/src/env.rs b/src/tools/rust-analyzer/crates/project-model/src/env.rs index 049acc290bb..ac7246acc59 100644 --- a/src/tools/rust-analyzer/crates/project-model/src/env.rs +++ b/src/tools/rust-analyzer/crates/project-model/src/env.rs @@ -90,10 +90,13 @@ fn parse_output_cargo_config_env(stdout: String) -> FxHashMap<String, String> { stdout .lines() .filter_map(|l| l.strip_prefix("env.")) - .filter_map(|l| { - l.split_once(" = ") - // cargo used to report it with this, keep it for a couple releases around - .or_else(|| l.split_once(".value = ")) + .filter_map(|l| l.split_once(" = ")) + .filter_map(|(k, v)| { + if k.contains('.') { + k.strip_suffix(".value").zip(Some(v)) + } else { + Some((k, v)) + } }) .map(|(key, value)| (key.to_owned(), value.trim_matches('"').to_owned())) .collect() |
