Rename broken_arrow to broken_symlink

This commit is contained in:
Benjamin Sago 2017-10-08 16:59:11 +01:00
parent 91334d601c
commit a45bcfe058
3 changed files with 18 additions and 11 deletions

View File

@ -334,7 +334,9 @@ impl<'a> Render<'a> {
None => format!("<{}>", error), None => format!("<{}>", error),
}; };
let name = TextCell::paint(self.colours.broken_arrow(), error_message); // TODO: broken_symlink() doesnt quite seem like the right name for
// the style thats being used here. Maybe split it in two?
let name = TextCell::paint(self.colours.broken_symlink(), error_message);
Row { cells: None, name, tree } Row { cells: None, name, tree }
} }

View File

@ -121,6 +121,12 @@ impl<'a, 'dir, C: Colours> FileName<'a, 'dir, C> {
} }
if !self.file.name.is_empty() { if !self.file.name.is_empty() {
// The “missing file” colour seems like it should be used here,
// but its not! In a grid view, where there's no space to display
// link targets, the filename has to have a different style to
// indicate this fact. But when showing targets, we can just
// colour the path instead (see below), and leave the broken
// links filename as the link colour.
for bit in self.coloured_file_name() { for bit in self.coloured_file_name() {
bits.push(bit); bits.push(bit);
} }
@ -155,7 +161,7 @@ impl<'a, 'dir, C: Colours> FileName<'a, 'dir, C> {
FileTarget::Broken(ref broken_path) => { FileTarget::Broken(ref broken_path) => {
bits.push(Style::default().paint(" ")); bits.push(Style::default().paint(" "));
bits.push(self.colours.broken_arrow().paint("->")); bits.push(self.colours.broken_symlink().paint("->"));
bits.push(Style::default().paint(" ")); bits.push(Style::default().paint(" "));
escape(broken_path.display().to_string(), &mut bits, self.colours.broken_filename(), self.colours.broken_control_char()); escape(broken_path.display().to_string(), &mut bits, self.colours.broken_filename(), self.colours.broken_control_char());
}, },
@ -229,15 +235,13 @@ impl<'a, 'dir, C: Colours> FileName<'a, 'dir, C> {
/// Figures out which colour to paint the filename part of the output, /// Figures out which colour to paint the filename part of the output,
/// depending on which “type” of file it appears to be -- either from the /// depending on which “type” of file it appears to be -- either from the
/// class on the filesystem or from its name. /// class on the filesystem or from its name. (Or the broken link colour,
/// if theres nowhere else for that fact to be shown.)
pub fn style(&self) -> Style { pub fn style(&self) -> Style {
// Override the style with the “broken link” style when this file is
// a link that we cant follow for whatever reason. This is used when
// theres no other place to show that the link doesnt work.
if let LinkStyle::JustFilenames = self.link_style { if let LinkStyle::JustFilenames = self.link_style {
if let Some(ref target) = self.target { if let Some(ref target) = self.target {
if target.is_broken() { if target.is_broken() {
return self.colours.broken_arrow(); return self.colours.broken_symlink();
} }
} }
} }
@ -273,9 +277,10 @@ pub trait Colours: FiletypeColours {
/// The style to paint the arrow between a link and its target. /// The style to paint the arrow between a link and its target.
fn normal_arrow(&self) -> Style; fn normal_arrow(&self) -> Style;
/// The style to paint the arrow between a link and its target, when the /// The style to paint the filenames of broken links in views that dont
/// link is broken. /// show link targets, and the style to paint the *arrow* between the link
fn broken_arrow(&self) -> Style; /// and its target in views that *do* show link targets.
fn broken_symlink(&self) -> Style;
/// The style to paint the entire filename of a broken link. /// The style to paint the entire filename of a broken link.
fn broken_filename(&self) -> Style; fn broken_filename(&self) -> Style;

View File

@ -393,7 +393,7 @@ impl render::UserColours for Colours {
impl FileNameColours for Colours { impl FileNameColours for Colours {
fn normal_arrow(&self) -> Style { self.punctuation } fn normal_arrow(&self) -> Style { self.punctuation }
fn broken_arrow(&self) -> Style { self.broken_symlink } fn broken_symlink(&self) -> Style { self.broken_symlink }
fn broken_filename(&self) -> Style { apply_overlay(self.broken_symlink, self.broken_path_overlay) } fn broken_filename(&self) -> Style { apply_overlay(self.broken_symlink, self.broken_path_overlay) }
fn broken_control_char(&self) -> Style { apply_overlay(self.control_char, self.broken_path_overlay) } fn broken_control_char(&self) -> Style { apply_overlay(self.control_char, self.broken_path_overlay) }
fn control_char(&self) -> Style { self.control_char } fn control_char(&self) -> Style { self.control_char }