diff options
author | Canop <cano.petrole@gmail.com> | 2020-11-17 20:31:34 +0100 |
---|---|---|
committer | Canop <cano.petrole@gmail.com> | 2020-11-17 20:31:34 +0100 |
commit | 985a31722419ea23b194091fc5feb129b79f5017 (patch) | |
tree | c1a8d92fdc538ef435ee706b8742add0584c7e00 /src/tree | |
parent | 3128dacc5c2066392a53f91718a7db438706b4c2 (diff) |
some code cleaning
Diffstat (limited to 'src/tree')
-rw-r--r-- | src/tree/tree_line.rs | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/src/tree/tree_line.rs b/src/tree/tree_line.rs index 3e9d361..a4a5e17 100644 --- a/src/tree/tree_line.rs +++ b/src/tree/tree_line.rs @@ -40,44 +40,38 @@ pub struct TreeLine { impl TreeLine { pub fn make_displayable_name( - name: &str, + name: &str, path: &std::path::PathBuf, tree_line_type: &TreeLineType, con: &AppContext, - ) -> String { let newline_replaced_name = name.replace('\n', ""); - - match &con.icon_plugin - { + match &con.icons { None => newline_replaced_name, - Some( icon_plugin ) => - { - let extension = Self::extension_from_name( name ); - let double_extension = Self::double_extension_from_name( name ); - - let icon = &icon_plugin.get_icon( + Some(icon_plugin) => { + // FIXME compile both in one regex + let extension = Self::extension_from_name(name); + let double_extension = Self::double_extension_from_name(name); + let icon = icon_plugin.get_icon( tree_line_type, path, &name, double_extension, extension, ); - - String::with_capacity( name.len() + 2 ) - + &icon.to_string() + " " + &newline_replaced_name + format!("{} {}", icon, newline_replaced_name) } } } - pub fn double_extension_from_name( name: &str ) -> Option<&str> { + pub fn double_extension_from_name(name: &str) -> Option<&str> { regex!( r"\.([^.]+\.[^.]+)" ) .captures(&name) .and_then(|c| c.get(1)) .map(|e| e.as_str()) } - pub fn extension_from_name( name: &str ) -> Option<&str> { + pub fn extension_from_name(name: &str) -> Option<&str> { regex!(r"\.([^.]+)$") .captures(&name) .and_then(|c| c.get(1)) |