Prefer Side over booleans in line number styling

pull/356/merge
Wilfred Hughes 2022-10-28 19:14:06 +07:00
parent 490787fe28
commit 7ea4b96a41
3 changed files with 16 additions and 10 deletions

@ -1,6 +1,7 @@
//! Inline, or "unified" diff display.
use crate::{
constants::Side,
display::context::{calculate_after_context, calculate_before_context, opposite_positions},
display::hunks::Hunk,
display::style::{self, apply_colors, apply_line_number_color},
@ -90,7 +91,7 @@ pub fn print(
apply_line_number_color(
&format_line_num(lhs_line),
false,
true,
Side::Left,
display_options,
),
lhs_colored_lines[lhs_line.as_usize()]
@ -105,7 +106,7 @@ pub fn print(
apply_line_number_color(
&format_line_num(*lhs_line),
true,
true,
Side::Left,
display_options,
),
lhs_colored_lines[lhs_line.as_usize()]
@ -119,7 +120,7 @@ pub fn print(
apply_line_number_color(
&format_line_num(*rhs_line),
true,
false,
Side::Right,
display_options,
),
rhs_colored_lines[rhs_line.as_usize()]
@ -134,7 +135,7 @@ pub fn print(
apply_line_number_color(
&format_line_num(*rhs_line),
false,
false,
Side::Right,
display_options,
),
rhs_colored_lines[rhs_line.as_usize()]

@ -34,7 +34,7 @@ fn format_line_num_padded(line_num: LineNumber, column_width: usize) -> String {
fn format_missing_line_num(
prev_num: LineNumber,
source_dims: &SourceDimensions,
is_lhs: bool,
is_lhs: bool, // Side here
use_color: bool,
) -> String {
let column_width = if is_lhs {
@ -121,7 +121,7 @@ fn display_line_nums(
let display_lhs_line_num: String = match lhs_line_num {
Some(line_num) => {
let s = format_line_num_padded(line_num, source_dims.lhs_line_nums_width);
apply_line_number_color(&s, lhs_has_novel, true, display_options)
apply_line_number_color(&s, lhs_has_novel, Side::Left, display_options)
}
None => format_missing_line_num(
prev_lhs_line_num.unwrap_or_else(|| 1.into()),
@ -133,7 +133,7 @@ fn display_line_nums(
let display_rhs_line_num: String = match rhs_line_num {
Some(line_num) => {
let s = format_line_num_padded(line_num, source_dims.rhs_line_nums_width);
apply_line_number_color(&s, rhs_has_novel, false, display_options)
apply_line_number_color(&s, rhs_has_novel, Side::Right, display_options)
}
None => format_missing_line_num(
prev_rhs_line_num.unwrap_or_else(|| 1.into()),
@ -554,7 +554,7 @@ pub fn print(
s = apply_line_number_color(
&s,
rhs_lines_with_novel.contains(line_num),
false,
Side::Right,
display_options,
);
}

@ -257,6 +257,7 @@ fn style_lines(lines: &[&str], styles: &[(SingleLineSpan, Style)]) -> Vec<String
res
}
// TODO: Side here
pub fn novel_style(style: Style, is_lhs: bool, background: BackgroundColor) -> Style {
if background.is_dark() {
if is_lhs {
@ -381,13 +382,17 @@ fn apply_header_color(s: &str, use_color: bool, background: BackgroundColor) ->
pub(crate) fn apply_line_number_color(
s: &str,
is_novel: bool,
is_lhs: bool, // TODO: use Side here
side: Side,
display_options: &DisplayOptions,
) -> String {
if display_options.use_color {
let mut style = Style::new();
if is_novel {
style = novel_style(style, is_lhs, display_options.background_color);
style = novel_style(
style,
matches!(side, Side::Left),
display_options.background_color,
);
}
// TODO: dimmed