diff options
author | Dan Davison <dandavison7@gmail.com> | 2020-05-28 11:39:11 -0400 |
---|---|---|
committer | Dan Davison <dandavison7@gmail.com> | 2020-05-28 15:39:11 -0400 |
commit | 470fb46a0a23052ea40ddc0906175d9ca54a18cb (patch) | |
tree | cb71fdfe4769b39ba2152e41db3a0ebfe7574549 /src/delta.rs | |
parent | dc3b9dbf08d3821942b6608524f6db4464ce081b (diff) |
Bug fix: hunk header background color was not reaching box line
Diffstat (limited to 'src/delta.rs')
-rw-r--r-- | src/delta.rs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/delta.rs b/src/delta.rs index 9e11f1d4..6a87f796 100644 --- a/src/delta.rs +++ b/src/delta.rs @@ -191,8 +191,10 @@ fn handle_commit_meta_header_line( config: &Config, ) -> std::io::Result<()> { let decoration_ansi_term_style; + let mut pad = false; let draw_fn = match config.commit_style.decoration_style { Some(DecorationStyle::Box(style)) => { + pad = true; decoration_ansi_term_style = style; draw::write_boxed_with_line } @@ -213,7 +215,7 @@ fn handle_commit_meta_header_line( }; draw_fn( painter.writer, - line, + &format!("{}{}", line, if pad { " " } else { "" }), config.terminal_width, config.commit_style.ansi_term_style, decoration_ansi_term_style, @@ -241,8 +243,10 @@ fn handle_generic_file_meta_header_line( config: &Config, ) -> std::io::Result<()> { let decoration_ansi_term_style; + let mut pad = false; let draw_fn = match config.file_style.decoration_style { Some(DecorationStyle::Box(style)) => { + pad = true; decoration_ansi_term_style = style; draw::write_boxed_with_line } @@ -266,7 +270,10 @@ fn handle_generic_file_meta_header_line( writeln!(painter.writer)?; draw_fn( painter.writer, - &config.file_style.ansi_term_style.paint(line), + &config + .file_style + .ansi_term_style + .paint(format!("{}{}", line, if pad { " " } else { "" })), config.terminal_width, config.file_style.ansi_term_style, decoration_ansi_term_style, @@ -302,7 +309,11 @@ fn handle_hunk_header_line( None => unreachable("Unreachable code path reached in handle_hunk_header_line."), }; let (raw_code_fragment, line_number) = parse::parse_hunk_metadata(&line); - let lines = vec![prepare(raw_code_fragment, false, config)]; + let line = match prepare(raw_code_fragment, false, config) { + s if s.len() > 0 => format!("{} ", s), + s => s, + }; + let lines = vec![line]; if !lines[0].is_empty() { let syntax_style_sections = Painter::get_syntax_style_sections_for_lines( &lines, |