mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-27 13:33:31 +00:00
fix: Support new cargo config get env format
This commit is contained in:
parent
62a7468d46
commit
c7d6fe5257
1 changed files with 14 additions and 2 deletions
|
@ -75,14 +75,26 @@ pub(crate) fn cargo_config_env(
|
||||||
}
|
}
|
||||||
// if successful we receive `env.key.value = "value" per entry
|
// if successful we receive `env.key.value = "value" per entry
|
||||||
tracing::debug!("Discovering cargo config env by {:?}", cargo_config);
|
tracing::debug!("Discovering cargo config env by {:?}", cargo_config);
|
||||||
utf8_stdout(cargo_config).map(parse_output_cargo_config_env).unwrap_or_default()
|
utf8_stdout(cargo_config)
|
||||||
|
.map(parse_output_cargo_config_env)
|
||||||
|
.inspect(|env| {
|
||||||
|
tracing::debug!("Discovered cargo config env: {:?}", env);
|
||||||
|
})
|
||||||
|
.inspect_err(|err| {
|
||||||
|
tracing::error!("Failed to discover cargo config env: {:?}", err);
|
||||||
|
})
|
||||||
|
.unwrap_or_default()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn parse_output_cargo_config_env(stdout: String) -> FxHashMap<String, String> {
|
fn parse_output_cargo_config_env(stdout: String) -> FxHashMap<String, String> {
|
||||||
stdout
|
stdout
|
||||||
.lines()
|
.lines()
|
||||||
.filter_map(|l| l.strip_prefix("env."))
|
.filter_map(|l| l.strip_prefix("env."))
|
||||||
.filter_map(|l| l.split_once(".value = "))
|
.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 = "))
|
||||||
|
})
|
||||||
.map(|(key, value)| (key.to_owned(), value.trim_matches('"').to_owned()))
|
.map(|(key, value)| (key.to_owned(), value.trim_matches('"').to_owned()))
|
||||||
.collect()
|
.collect()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue