diff options
author | Dan Davison <dandavison7@gmail.com> | 2022-03-14 11:22:14 -0400 |
---|---|---|
committer | Dan Davison <dandavison7@gmail.com> | 2022-03-14 11:22:14 -0400 |
commit | c8cff07f6066ae28bbe3e6e86cf5da95226ffe0a (patch) | |
tree | cb2194239441f88bd3fdffa060a6b7614e2234c4 | |
parent | f4a80c54f2974818beb4cd935ae85e9ba13d6819 (diff) |
Refactor
-rw-r--r-- | src/features/line_numbers.rs | 30 | ||||
-rw-r--r-- | src/parse_style.rs | 3 |
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( |