Jelajahi Sumber

feat(theme): implement FileNameColours.icon_override for Theme

Signed-off-by: Sandro-Alessio Gierens <sandro@gierens.de>
Sandro-Alessio Gierens 1 tahun lalu
induk
melakukan
b16d9bbdd9
1 mengubah file dengan 20 tambahan dan 0 penghapusan
  1. 20 0
      src/theme/mod.rs

+ 20 - 0
src/theme/mod.rs

@@ -384,6 +384,26 @@ impl FileNameColours for Theme {
             .get_style(file, self)
             .get_style(file, self)
             .unwrap_or(self.ui.filekinds.unwrap_or_default().normal())
             .unwrap_or(self.ui.filekinds.unwrap_or_default().normal())
     }
     }
+
+    fn icon_override(&self, file: &File<'_>) -> Option<char> {
+        if let Some(ref overrides) = self.ui.icon_overrides {
+            if let Some(ref name_overrides) = overrides.filenames {
+                if let Some(icon) = name_overrides.get(&file.name) {
+                    return Some(*icon);
+                }
+            }
+
+            if let Some(ref ext_overrides) = overrides.extensions {
+                if let Some(ext) = file.ext.clone() {
+                    if let Some(icon) = ext_overrides.get(&ext) {
+                        return Some(*icon);
+                    }
+                }
+            }
+        }
+
+        None
+    }
 }
 }
 
 
 #[rustfmt::skip]
 #[rustfmt::skip]