Unnamed repository; edit this file 'description' to name the repository.
Add simplistic config validation
Lukas Wirth 2022-04-11
parent 6d7055e · commit b90df79
-rw-r--r--crates/rust-analyzer/src/config.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs
index 4d02e89653..ab9ad4a543 100644
--- a/crates/rust-analyzer/src/config.rs
+++ b/crates/rust-analyzer/src/config.rs
@@ -571,6 +571,9 @@ impl Config {
None => tracing::info!("Invalid snippet {}", name),
}
}
+
+ self.validate(&mut errors);
+
if errors.is_empty() {
Ok(())
} else {
@@ -578,6 +581,16 @@ impl Config {
}
}
+ fn validate(&self, error_sink: &mut Vec<(String, serde_json::Error)>) {
+ use serde::de::Error;
+ if self.data.checkOnSave_command.is_empty() {
+ error_sink.push((
+ "/checkOnSave/command".to_string(),
+ serde_json::Error::custom("expected a non-empty string"),
+ ));
+ }
+ }
+
pub fn json_schema() -> serde_json::Value {
ConfigData::json_schema()
}