diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/icon.rs | 8 | ||||
-rw-r--r-- | src/meta/name.rs | 8 | ||||
-rw-r--r-- | src/meta/symlink.rs | 12 |
3 files changed, 16 insertions, 12 deletions
diff --git a/src/icon.rs b/src/icon.rs index 2840756..f225d32 100644 --- a/src/icon.rs +++ b/src/icon.rs @@ -11,10 +11,10 @@ pub struct Icon { impl Icon { pub fn render(&self, colors: &Colors) -> ColoredString { - let elem = if self.file_type == FileType::Directory { - &Elem::Dir - } else { - &Elem::File + let elem = match self.file_type { + FileType::Directory => &Elem::Dir, + FileType::SymLink => &Elem::SymLink, + _ => &Elem::File, }; colors.colorize(self.icon.to_string() + ICON_SPACE, elem) diff --git a/src/meta/name.rs b/src/meta/name.rs index 0892a18..2048a37 100644 --- a/src/meta/name.rs +++ b/src/meta/name.rs @@ -41,10 +41,10 @@ impl Name { pub fn render(&self, colors: &Colors) -> ColoredString { let mut content = String::with_capacity(self.name.len() + 3 /* spaces */); - let elem = if self.file_type == FileType::Directory { - &Elem::Dir - } else { - &Elem::File + let elem = match self.file_type { + FileType::Directory => &Elem::Dir, + FileType::SymLink => &Elem::SymLink, + _ => &Elem::File, }; content += &self.name; diff --git a/src/meta/symlink.rs b/src/meta/symlink.rs index 6aaa15d..82a929f 100644 --- a/src/meta/symlink.rs +++ b/src/meta/symlink.rs @@ -1,4 +1,4 @@ -use ansi_term::ANSIString; +use ansi_term::{ANSIString, ANSIStrings}; use color::{ColoredString, Colors, Elem}; use std::fs::read_link; use std::path::Path; @@ -51,9 +51,13 @@ impl SymLink { &Elem::BrokenSymLink }; - let mut res = String::from(" ⇒ "); - res += ⌖ - colors.colorize(res, elem) + let strings: &[ColoredString] = &[ + ColoredString::from(" ⇒ "), + colors.colorize(target.to_string(), elem), + ]; + + let res = ANSIStrings(strings).to_string(); + ColoredString::from(res) } else { ANSIString::from("") } |