Don't log JSON parse errors with no settings (#11459)

Release Notes:

- Silenced error messages on startup when no settings/keymap files
exist.
This commit is contained in:
Conrad Irwin 2024-05-06 14:55:44 -06:00 committed by GitHub
parent 2e6d044bac
commit f3fffc25c4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 4 deletions

View File

@ -47,6 +47,9 @@ impl KeymapFile {
}
pub fn parse(content: &str) -> Result<Self> {
if content.is_empty() {
return Ok(Self::default());
}
parse_json_with_comments::<Self>(content)
}

View File

@ -430,7 +430,11 @@ impl SettingsStore {
user_settings_content: &str,
cx: &mut AppContext,
) -> Result<()> {
let settings: serde_json::Value = parse_json_with_comments(user_settings_content)?;
let settings: serde_json::Value = if user_settings_content.is_empty() {
parse_json_with_comments("{}")?
} else {
parse_json_with_comments(user_settings_content)?
};
if settings.is_object() {
self.raw_user_settings = settings;
self.recompute_values(None, cx)?;
@ -448,9 +452,11 @@ impl SettingsStore {
settings_content: Option<&str>,
cx: &mut AppContext,
) -> Result<()> {
if let Some(content) = settings_content {
self.raw_local_settings
.insert((root_id, path.clone()), parse_json_with_comments(content)?);
if settings_content.is_some_and(|content| !content.is_empty()) {
self.raw_local_settings.insert(
(root_id, path.clone()),
parse_json_with_comments(settings_content.unwrap())?,
);
} else {
self.raw_local_settings.remove(&(root_id, path.clone()));
}