summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Davison <dandavison7@gmail.com>2022-03-14 11:22:14 -0400
committerDan Davison <dandavison7@gmail.com>2022-03-14 11:22:14 -0400
commitc8cff07f6066ae28bbe3e6e86cf5da95226ffe0a (patch)
treecb2194239441f88bd3fdffa060a6b7614e2234c4
parentf4a80c54f2974818beb4cd935ae85e9ba13d6819 (diff)
Refactor
-rw-r--r--src/features/line_numbers.rs30
-rw-r--r--src/parse_style.rs3
2 files changed, 18 insertions, 15 deletions
diff --git a/src/features/line_numbers.rs b/src/features/line_numbers.rs
index 329d2efb..57cceb61 100644
--- a/src/features/line_numbers.rs
+++ b/src/features/line_numbers.rs
@@ -249,19 +249,25 @@ fn format_and_paint_line_number_field<'a>(
let format_data = &line_numbers_data.format_data[side];
let plus_file = &line_numbers_data.plus_file;
- let mut style = &config.line_numbers_style_leftright[side];
- if style == &config.null_style {
- style = if line_numbers[Minus].is_some() {
- &styles[Minus]
- } else {
- &styles[Plus]
- };
- }
+ let minus_plus_style = match (line_numbers[Minus], line_numbers[Plus]) {
+ (Some(_), None) => styles[Minus],
+ (None, Some(_)) => styles[Plus],
+ _ => unreachable!(),
+ };
+ let left_right_style = match &config.line_numbers_style_leftright[side] {
+ style => {
+ if style.is_omitted {
+ &minus_plus_style
+ } else {
+ style
+ }
+ }
+ };
let mut ansi_strings = Vec::new();
let mut suffix = "";
for placeholder in format_data {
- ansi_strings.push(style.paint(placeholder.prefix.as_str()));
+ ansi_strings.push(left_right_style.paint(placeholder.prefix.as_str()));
let width = if let Some(placeholder_width) = placeholder.width {
max(placeholder_width, min_field_width)
@@ -280,7 +286,7 @@ fn format_and_paint_line_number_field<'a>(
None,
config,
);
- ansi_strings.push(style.paint(formatted))
+ ansi_strings.push(minus_plus_style.paint(formatted))
}
Some(Placeholder::NumberPlus) => {
let formatted = format_line_number(
@@ -291,14 +297,14 @@ fn format_and_paint_line_number_field<'a>(
Some(plus_file),
config,
);
- ansi_strings.push(style.paint(formatted))
+ ansi_strings.push(minus_plus_style.paint(formatted))
}
None => {}
_ => unreachable!("Invalid placeholder"),
}
suffix = placeholder.suffix.as_str();
}
- ansi_strings.push(style.paint(suffix));
+ ansi_strings.push(left_right_style.paint(suffix));
ansi_strings
}
diff --git a/src/parse_style.rs b/src/parse_style.rs
index 70f40ff1..fe08c1eb 100644
--- a/src/parse_style.rs
+++ b/src/parse_style.rs
@@ -18,9 +18,6 @@ impl Style {
true_color: bool,
git_config: Option<&GitConfig>,
) -> Self {
- if style_string.to_lowercase() == "none" {
- return Self::null_style();
- }
let (ansi_term_style, is_omitted, is_raw, is_syntax_highlighted) =
parse_ansi_term_style(style_string, default, true_color, git_config);
let decoration_style = DecorationStyle::from_str(