summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/icon.rs8
-rw-r--r--src/meta/name.rs8
-rw-r--r--src/meta/symlink.rs12
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("")
}