summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Davison <dandavison7@gmail.com>2022-03-13 21:46:37 -0400
committerDan Davison <dandavison7@gmail.com>2022-03-14 10:53:30 -0400
commit5c30e26429ef805dfe39824c0d14d7f4da0c486e (patch)
treee074d32c342dac89d191e4e93dee022343ebdb57
parentee09adf81bc46126666308725df5761e22c8e37b (diff)
Don't apply line-number-minus/plus-style to empty cell that is not minus/plus
-rw-r--r--src/features/line_numbers.rs15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/features/line_numbers.rs b/src/features/line_numbers.rs
index 88850434..53edf110 100644
--- a/src/features/line_numbers.rs
+++ b/src/features/line_numbers.rs
@@ -250,6 +250,11 @@ 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 style = &config.line_numbers_style_leftright[side];
+ let style2 = if line_numbers[Minus].is_some() {
+ styles[Minus]
+ } else {
+ styles[Plus]
+ };
let mut ansi_strings = Vec::new();
let mut suffix = "";
@@ -265,24 +270,26 @@ fn format_and_paint_line_number_field<'a>(
let alignment_spec = placeholder.alignment_spec.unwrap_or(Align::Center);
match placeholder.placeholder {
Some(Placeholder::NumberMinus) => {
- ansi_strings.push(styles[Minus].paint(format_line_number(
+ let formatted = format_line_number(
line_numbers[Minus],
alignment_spec,
width,
placeholder.precision,
None,
config,
- )))
+ );
+ ansi_strings.push(style2.paint(formatted))
}
Some(Placeholder::NumberPlus) => {
- ansi_strings.push(styles[Plus].paint(format_line_number(
+ let formatted = format_line_number(
line_numbers[Plus],
alignment_spec,
width,
placeholder.precision,
Some(plus_file),
config,
- )))
+ );
+ ansi_strings.push(style2.paint(formatted))
}
None => {}
_ => unreachable!("Invalid placeholder"),