From a25f9ee1fcdeb9fbb6d5dc06315517c28b47e8d5 Mon Sep 17 00:00:00 2001 From: Test Date: Wed, 11 Mar 2026 23:03:07 +0100 Subject: [PATCH] style: format Rust theme modules with cargo fmt Co-Authored-By: Claude Opus 4.6 --- src-tauri/src/theme/create.rs | 75 +++++++++++++++++++++++++-------- src-tauri/src/theme/defaults.rs | 25 +++++------ src-tauri/src/theme/seed.rs | 48 ++++++++++++++++----- 3 files changed, 104 insertions(+), 44 deletions(-) diff --git a/src-tauri/src/theme/create.rs b/src-tauri/src/theme/create.rs index f80fbea5..8e0602e3 100644 --- a/src-tauri/src/theme/create.rs +++ b/src-tauri/src/theme/create.rs @@ -93,10 +93,7 @@ fn find_available_stem(dir: &Path, base: &str, ext: &str) -> String { fn vault_theme_note_content(name: &str, vars: &[(&str, &str)]) -> String { let mut fm = format!("---\nIs A: Theme\nDescription: {name} theme\n"); for (key, value) in vars { - if value.contains('#') - || value.contains('\'') - || value.contains(',') - || value.contains('(') + if value.contains('#') || value.contains('\'') || value.contains(',') || value.contains('(') { fm.push_str(&format!("{key}: \"{value}\"\n")); } else { @@ -240,23 +237,65 @@ mod tests { } // Spot-check editor properties from theme.json that were previously missing - assert!(content.contains("editor-font-family:"), "missing editor-font-family"); - assert!(content.contains("editor-padding-horizontal:"), "missing editor-padding-horizontal"); - assert!(content.contains("headings-h1-font-size:"), "missing headings-h1-font-size"); - assert!(content.contains("lists-bullet-size:"), "missing lists-bullet-size"); - assert!(content.contains("lists-bullet-color:"), "missing lists-bullet-color"); - assert!(content.contains("checkboxes-size:"), "missing checkboxes-size"); - assert!(content.contains("inline-styles-bold-font-weight:"), "missing inline-styles-bold-font-weight"); - assert!(content.contains("code-blocks-font-family:"), "missing code-blocks-font-family"); - assert!(content.contains("blockquote-border-left-width:"), "missing blockquote-border-left-width"); - assert!(content.contains("table-border-color:"), "missing table-border-color"); - assert!(content.contains("horizontal-rule-thickness:"), "missing horizontal-rule-thickness"); + assert!( + content.contains("editor-font-family:"), + "missing editor-font-family" + ); + assert!( + content.contains("editor-padding-horizontal:"), + "missing editor-padding-horizontal" + ); + assert!( + content.contains("headings-h1-font-size:"), + "missing headings-h1-font-size" + ); + assert!( + content.contains("lists-bullet-size:"), + "missing lists-bullet-size" + ); + assert!( + content.contains("lists-bullet-color:"), + "missing lists-bullet-color" + ); + assert!( + content.contains("checkboxes-size:"), + "missing checkboxes-size" + ); + assert!( + content.contains("inline-styles-bold-font-weight:"), + "missing inline-styles-bold-font-weight" + ); + assert!( + content.contains("code-blocks-font-family:"), + "missing code-blocks-font-family" + ); + assert!( + content.contains("blockquote-border-left-width:"), + "missing blockquote-border-left-width" + ); + assert!( + content.contains("table-border-color:"), + "missing table-border-color" + ); + assert!( + content.contains("horizontal-rule-thickness:"), + "missing horizontal-rule-thickness" + ); assert!(content.contains("colors-text:"), "missing colors-text"); assert!(content.contains("colors-cursor:"), "missing colors-cursor"); // Numeric values that need CSS units must have px suffix - assert!(content.contains("editor-font-size: 15px"), "editor-font-size should have px unit"); - assert!(content.contains("editor-max-width: 720px"), "editor-max-width should have px unit"); - assert!(content.contains("editor-padding-horizontal: 40px"), "editor-padding-horizontal should have px unit"); + assert!( + content.contains("editor-font-size: 15px"), + "editor-font-size should have px unit" + ); + assert!( + content.contains("editor-max-width: 720px"), + "editor-max-width should have px unit" + ); + assert!( + content.contains("editor-padding-horizontal: 40px"), + "editor-padding-horizontal should have px unit" + ); } } diff --git a/src-tauri/src/theme/defaults.rs b/src-tauri/src/theme/defaults.rs index e853db2a..809c1785 100644 --- a/src-tauri/src/theme/defaults.rs +++ b/src-tauri/src/theme/defaults.rs @@ -239,7 +239,10 @@ pub const DEFAULT_VAULT_THEME_VARS: [(&str, &str); 140] = [ "'SF Mono', 'Fira Code', monospace", ), ("inline-styles-code-font-size", "14px"), - ("inline-styles-code-background-color", "var(--bg-hover-subtle)"), + ( + "inline-styles-code-background-color", + "var(--bg-hover-subtle)", + ), ("inline-styles-code-padding-horizontal", "4px"), ("inline-styles-code-padding-vertical", "2px"), ("inline-styles-code-border-radius", "3px"), @@ -377,10 +380,7 @@ const MINIMAL_OVERRIDES: &[(&str, &str)] = &[ ("accent-purple-light", "#66009914"), ("accent-red-light", "#CC000014"), ("accent-yellow-light", "#99660014"), - ( - "font-family", - "'SF Mono', 'Menlo', monospace", - ), + ("font-family", "'SF Mono', 'Menlo', monospace"), ("font-size-base", "13px"), ("editor-font-size", "15px"), ("editor-line-height", "1.6"), @@ -391,17 +391,10 @@ const MINIMAL_OVERRIDES: &[(&str, &str)] = &[ /// Build a vault theme note string from a set of CSS variable pairs. /// /// Values containing `#`, `'`, `,`, or `(` are YAML-quoted to avoid parse errors. -fn build_vault_theme_note( - name: &str, - description: &str, - vars: &[(&str, &str)], -) -> String { +fn build_vault_theme_note(name: &str, description: &str, vars: &[(&str, &str)]) -> String { let mut fm = format!("---\ntype: Theme\nDescription: {description}\n"); for (key, value) in vars { - if value.contains('#') - || value.contains('\'') - || value.contains(',') - || value.contains('(') + if value.contains('#') || value.contains('\'') || value.contains(',') || value.contains('(') { fm.push_str(&format!("{key}: \"{value}\"\n")); } else { @@ -414,7 +407,9 @@ fn build_vault_theme_note( } /// Apply overrides on top of DEFAULT_VAULT_THEME_VARS, returning a new Vec. -fn apply_overrides(overrides: &[(&'static str, &'static str)]) -> Vec<(&'static str, &'static str)> { +fn apply_overrides( + overrides: &[(&'static str, &'static str)], +) -> Vec<(&'static str, &'static str)> { let mut vars: Vec<(&'static str, &'static str)> = DEFAULT_VAULT_THEME_VARS.to_vec(); for &(key, value) in overrides { if let Some(entry) = vars.iter_mut().find(|e| e.0 == key) { diff --git a/src-tauri/src/theme/seed.rs b/src-tauri/src/theme/seed.rs index 94581bb4..342ec2bf 100644 --- a/src-tauri/src/theme/seed.rs +++ b/src-tauri/src/theme/seed.rs @@ -35,8 +35,7 @@ pub fn seed_default_themes(vault_path: &str) { fn write_if_missing(path: &Path, content: &str) -> Result { let needs_write = !path.exists() || fs::metadata(path).map_or(true, |m| m.len() == 0); if needs_write { - fs::write(path, content) - .map_err(|e| format!("Failed to write {}: {e}", path.display()))?; + fs::write(path, content).map_err(|e| format!("Failed to write {}: {e}", path.display()))?; } Ok(needs_write) } @@ -352,15 +351,42 @@ mod tests { let content = fs::read_to_string(vault.join("theme").join("default.md")).unwrap(); // Must contain all editor properties from theme.json - assert!(content.contains("editor-font-family:"), "missing editor-font-family"); - assert!(content.contains("headings-h1-font-size:"), "missing headings-h1-font-size"); - assert!(content.contains("lists-bullet-size:"), "missing lists-bullet-size"); - assert!(content.contains("checkboxes-size:"), "missing checkboxes-size"); - assert!(content.contains("inline-styles-bold-font-weight:"), "missing inline-styles-bold"); - assert!(content.contains("code-blocks-font-family:"), "missing code-blocks-font-family"); - assert!(content.contains("blockquote-border-left-width:"), "missing blockquote"); - assert!(content.contains("table-border-color:"), "missing table-border-color"); - assert!(content.contains("horizontal-rule-thickness:"), "missing horizontal-rule"); + assert!( + content.contains("editor-font-family:"), + "missing editor-font-family" + ); + assert!( + content.contains("headings-h1-font-size:"), + "missing headings-h1-font-size" + ); + assert!( + content.contains("lists-bullet-size:"), + "missing lists-bullet-size" + ); + assert!( + content.contains("checkboxes-size:"), + "missing checkboxes-size" + ); + assert!( + content.contains("inline-styles-bold-font-weight:"), + "missing inline-styles-bold" + ); + assert!( + content.contains("code-blocks-font-family:"), + "missing code-blocks-font-family" + ); + assert!( + content.contains("blockquote-border-left-width:"), + "missing blockquote" + ); + assert!( + content.contains("table-border-color:"), + "missing table-border-color" + ); + assert!( + content.contains("horizontal-rule-thickness:"), + "missing horizontal-rule" + ); assert!(content.contains("colors-text:"), "missing colors-text"); } }