mirror of
https://github.com/Llewellynvdm/exa.git
synced 2024-11-15 16:57:08 +00:00
File size colours on a scale
This adds an option (always on at the moment) to use a colour scale of green to yellow to orange for the file size field instead of always green. See #65.
This commit is contained in:
parent
91e8ef5c78
commit
86065f832d
@ -34,12 +34,13 @@ impl View {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let term_colours = try!(TerminalColours::deduce(matches));
|
let term_colours = try!(TerminalColours::deduce(matches));
|
||||||
|
let scale = true;
|
||||||
let colours = match term_colours {
|
let colours = match term_colours {
|
||||||
TerminalColours::Always => Colours::colourful(),
|
TerminalColours::Always => Colours::colourful(scale),
|
||||||
TerminalColours::Never => Colours::plain(),
|
TerminalColours::Never => Colours::plain(),
|
||||||
TerminalColours::Automatic => {
|
TerminalColours::Automatic => {
|
||||||
if dimensions().is_some() {
|
if dimensions().is_some() {
|
||||||
Colours::colourful()
|
Colours::colourful(scale)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Colours::plain()
|
Colours::plain()
|
||||||
@ -84,12 +85,13 @@ impl View {
|
|||||||
let other_options_scan = || {
|
let other_options_scan = || {
|
||||||
let term_colours = try!(TerminalColours::deduce(matches));
|
let term_colours = try!(TerminalColours::deduce(matches));
|
||||||
let term_width = try!(TerminalWidth::deduce());
|
let term_width = try!(TerminalWidth::deduce());
|
||||||
|
let scale = true;
|
||||||
|
|
||||||
if let Some(&width) = term_width.as_ref() {
|
if let Some(&width) = term_width.as_ref() {
|
||||||
let colours = match term_colours {
|
let colours = match term_colours {
|
||||||
TerminalColours::Always => Colours::colourful(),
|
TerminalColours::Always => Colours::colourful(scale),
|
||||||
TerminalColours::Never => Colours::plain(),
|
TerminalColours::Never => Colours::plain(),
|
||||||
TerminalColours::Automatic => Colours::colourful(),
|
TerminalColours::Automatic => Colours::colourful(scale),
|
||||||
};
|
};
|
||||||
|
|
||||||
if matches.opt_present("oneline") {
|
if matches.opt_present("oneline") {
|
||||||
@ -132,7 +134,7 @@ impl View {
|
|||||||
// fallback to the lines view.
|
// fallback to the lines view.
|
||||||
|
|
||||||
let colours = match term_colours {
|
let colours = match term_colours {
|
||||||
TerminalColours::Always => Colours::colourful(),
|
TerminalColours::Always => Colours::colourful(scale),
|
||||||
TerminalColours::Never => Colours::plain(),
|
TerminalColours::Never => Colours::plain(),
|
||||||
TerminalColours::Automatic => Colours::plain(),
|
TerminalColours::Automatic => Colours::plain(),
|
||||||
};
|
};
|
||||||
|
@ -4,6 +4,8 @@ use ansi_term::Colour::{Red, Green, Yellow, Blue, Cyan, Purple, Fixed};
|
|||||||
|
|
||||||
#[derive(Clone, Copy, Debug, Default, PartialEq)]
|
#[derive(Clone, Copy, Debug, Default, PartialEq)]
|
||||||
pub struct Colours {
|
pub struct Colours {
|
||||||
|
pub scale: bool,
|
||||||
|
|
||||||
pub filetypes: FileTypes,
|
pub filetypes: FileTypes,
|
||||||
pub perms: Permissions,
|
pub perms: Permissions,
|
||||||
pub size: Size,
|
pub size: Size,
|
||||||
@ -96,8 +98,10 @@ impl Colours {
|
|||||||
Colours::default()
|
Colours::default()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn colourful() -> Colours {
|
pub fn colourful(scale: bool) -> Colours {
|
||||||
Colours {
|
Colours {
|
||||||
|
scale: scale,
|
||||||
|
|
||||||
filetypes: FileTypes {
|
filetypes: FileTypes {
|
||||||
normal: Style::default(),
|
normal: Style::default(),
|
||||||
directory: Blue.bold(),
|
directory: Blue.bold(),
|
||||||
@ -170,7 +174,26 @@ impl Colours {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn file_size(&self, _size: u64) -> Style {
|
pub fn file_size(&self, size: u64) -> Style {
|
||||||
|
if self.scale {
|
||||||
|
if size < 1024 {
|
||||||
|
Fixed(118).normal()
|
||||||
|
}
|
||||||
|
else if size < 1024 * 1024 {
|
||||||
|
Fixed(190).normal()
|
||||||
|
}
|
||||||
|
else if size < 1024 * 1024 * 1024 {
|
||||||
|
Fixed(226).normal()
|
||||||
|
}
|
||||||
|
else if size < 1024 * 1024 * 1024 * 1024 {
|
||||||
|
Fixed(220).normal()
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Fixed(214).normal()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
self.size.numbers
|
self.size.numbers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user