diff options
| author | Lukas Wirth <lukastw97@gmail.com> | 2022-04-11 13:10:43 +0200 |
|---|---|---|
| committer | Lukas Wirth <lukastw97@gmail.com> | 2022-04-11 13:10:43 +0200 |
| commit | b90df7997d891d89e658a7781cc4a52fba38aa40 (patch) | |
| tree | f8f051b118e77e1ee93cee40c45daa7d22225ae0 | |
| parent | 6d7055e3223a33e3df7a8dd0c01e9dec4b91ac38 (diff) | |
| download | rust-b90df7997d891d89e658a7781cc4a52fba38aa40.tar.gz rust-b90df7997d891d89e658a7781cc4a52fba38aa40.zip | |
Add simplistic config validation
| -rw-r--r-- | crates/rust-analyzer/src/config.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs index 4d02e896534..ab9ad4a5431 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() } |
