Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/rust-analyzer/src/config.rs14
-rw-r--r--docs/user/generated_config.adoc8
-rw-r--r--editors/code/package.json13
3 files changed, 21 insertions, 14 deletions
diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs
index 30f0031905..051871020a 100644
--- a/crates/rust-analyzer/src/config.rs
+++ b/crates/rust-analyzer/src/config.rs
@@ -571,11 +571,8 @@ config_data! {
/// avoid checking unnecessary things.
cargo_buildScripts_useRustcWrapper: bool = true,
/// List of cfg options to enable with the given values.
- cargo_cfgs: FxHashMap<String, Option<String>> = {
- let mut m = FxHashMap::default();
- m.insert("debug_assertions".to_owned(), None);
- m.insert("miri".to_owned(), None);
- m
+ cargo_cfgs: Vec<String> = {
+ vec!["debug_assertion".into(), "miri".into()]
},
/// Extra arguments that are passed to every cargo invocation.
cargo_extraArgs: Vec<String> = vec![],
@@ -1944,6 +1941,13 @@ impl Config {
global: CfgDiff::new(
self.cargo_cfgs(source_root)
.iter()
+ // parse any cfg setting formatted as key=value or just key (without value)
+ .filter_map(|s| {
+ let mut sp = s.splitn(2, "=");
+ let key = sp.next();
+ let val = sp.next();
+ key.map(|key| (key, val))
+ })
.map(|(key, val)| match val {
Some(val) => CfgAtom::KeyValue {
key: Symbol::intern(key),
diff --git a/docs/user/generated_config.adoc b/docs/user/generated_config.adoc
index 5b86766aa8..c6f5852f87 100644
--- a/docs/user/generated_config.adoc
+++ b/docs/user/generated_config.adoc
@@ -94,10 +94,10 @@ avoid checking unnecessary things.
--
Default:
----
-{
- "miri": null,
- "debug_assertions": null
-}
+[
+ "debug_assertion",
+ "miri"
+]
----
List of cfg options to enable with the given values.
diff --git a/editors/code/package.json b/editors/code/package.json
index 80246bf3fe..6cb74a94a0 100644
--- a/editors/code/package.json
+++ b/editors/code/package.json
@@ -791,11 +791,14 @@
"properties": {
"rust-analyzer.cargo.cfgs": {
"markdownDescription": "List of cfg options to enable with the given values.",
- "default": {
- "miri": null,
- "debug_assertions": null
- },
- "type": "object"
+ "default": [
+ "debug_assertion",
+ "miri"
+ ],
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
}
}
},