From a92787564b91b6e391fd59a802dcdadb5813ed08 Mon Sep 17 00:00:00 2001 From: grig-iv Date: Tue, 13 Feb 2024 00:27:25 +0300 Subject: [PATCH] feat: add [icon] prepend_rules and append_rules --- yazi-config/src/theme/icon.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/yazi-config/src/theme/icon.rs b/yazi-config/src/theme/icon.rs index 3898334b..69f9418d 100644 --- a/yazi-config/src/theme/icon.rs +++ b/yazi-config/src/theme/icon.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Deserializer}; use super::Style; -use crate::{theme::{Color, StyleShadow}, Pattern}; +use crate::{theme::{Color, StyleShadow}, Pattern, preset::Preset}; pub struct Icon { pub name: Pattern, @@ -17,6 +17,10 @@ impl Icon { #[derive(Deserialize)] struct IconOuter { rules: Vec, + #[serde(default)] + prepend_rules: Vec, + #[serde(default)] + append_rules: Vec, } #[derive(Deserialize)] struct IconRule { @@ -26,8 +30,13 @@ impl Icon { fg: Option, } + let mut outer = IconOuter::deserialize(deserializer)?; + + #[rustfmt::skip] + Preset::mix(&mut outer.rules, outer.prepend_rules, outer.append_rules); + Ok( - IconOuter::deserialize(deserializer)? + outer .rules .into_iter() .map(|r| Icon {