mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-26 04:53:34 +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
|
||||
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> {
|
||||
stdout
|
||||
.lines()
|
||||
.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()))
|
||||
.collect()
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue