From cfa1adaf468d6284a1c2f0791690c92677c9046d Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Wed, 17 Jul 2024 13:27:53 -0400 Subject: [PATCH] fix: return error if vscode config fails to parse, instead of overwriting --- cosmic-theme/src/output/mod.rs | 2 ++ cosmic-theme/src/output/vs_code.rs | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cosmic-theme/src/output/mod.rs b/cosmic-theme/src/output/mod.rs index 7344fabe..f2822333 100644 --- a/cosmic-theme/src/output/mod.rs +++ b/cosmic-theme/src/output/mod.rs @@ -14,6 +14,8 @@ pub enum OutputError { Io(std::io::Error), #[error("Missing config directory")] MissingConfigDir, + #[error("Serde Error: {0}")] + Serde(#[from] serde_json::Error), } impl Theme { diff --git a/cosmic-theme/src/output/vs_code.rs b/cosmic-theme/src/output/vs_code.rs index a0b4ba7d..11403dbe 100644 --- a/cosmic-theme/src/output/vs_code.rs +++ b/cosmic-theme/src/output/vs_code.rs @@ -277,7 +277,7 @@ impl Theme { // just add the json entry for workbench.colorCustomizations let settings_file = vs_code_dir.join("settings.json"); let settings = std::fs::read_to_string(&settings_file).unwrap_or_default(); - let mut settings: serde_json::Value = serde_json::from_str(&settings).unwrap_or_default(); + let mut settings: serde_json::Value = serde_json::from_str(&settings)?; settings["workbench.colorCustomizations"] = serde_json::to_value(vs_theme).unwrap(); settings["window.autoDetectColorScheme"] = serde_json::Value::Bool(true); std::fs::write(