diff options
author | Zack Cerza <zack@cerza.org> | 2023-11-20 20:18:19 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-20 22:18:19 -0500 |
commit | 06b95306ac87c00b3146724976b35da7898a58eb (patch) | |
tree | 193157b31eaf92baae8558460f70becdde56b70a /src/handlers | |
parent | 49a99180fed618b62ba773e3aebd8968b044262d (diff) |
Make hunk header code fragment display optional (#1568)
Fixes: #1032
Diffstat (limited to 'src/handlers')
-rw-r--r-- | src/handlers/grep.rs | 6 | ||||
-rw-r--r-- | src/handlers/hunk_header.rs | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/handlers/grep.rs b/src/handlers/grep.rs index ecfc7e2a..bbdee10c 100644 --- a/src/handlers/grep.rs +++ b/src/handlers/grep.rs @@ -6,7 +6,8 @@ use serde::Deserialize; use crate::ansi; use crate::config::{ - delta_unreachable, GrepType, HunkHeaderIncludeFilePath, HunkHeaderIncludeLineNumber, + delta_unreachable, GrepType, HunkHeaderIncludeCodeFragment, HunkHeaderIncludeFilePath, + HunkHeaderIncludeLineNumber, }; use crate::delta::{State, StateMachine}; use crate::handlers::{self, ripgrep_json}; @@ -168,6 +169,7 @@ impl<'a> StateMachine<'a> { &HunkHeaderIncludeFilePath::Yes, &HunkHeaderIncludeLineNumber::No, &HunkHeaderIncludeHunkLabel::Yes, + &HunkHeaderIncludeCodeFragment::Yes, "", self.config, )? @@ -230,6 +232,7 @@ impl<'a> StateMachine<'a> { &HunkHeaderIncludeLineNumber::No }, &HunkHeaderIncludeHunkLabel::No, + &HunkHeaderIncludeCodeFragment::Yes, grep_line.line_type.file_path_separator(), self.config, ) @@ -255,6 +258,7 @@ impl<'a> StateMachine<'a> { &self.config.hunk_header_style_include_file_path, &self.config.hunk_header_style_include_line_number, &HunkHeaderIncludeHunkLabel::Yes, + &HunkHeaderIncludeCodeFragment::Yes, grep_line.line_type.file_path_separator(), self.config, )? diff --git a/src/handlers/hunk_header.rs b/src/handlers/hunk_header.rs index f06dcc52..a34035b5 100644 --- a/src/handlers/hunk_header.rs +++ b/src/handlers/hunk_header.rs @@ -25,7 +25,9 @@ use lazy_static::lazy_static; use regex::Regex; use super::draw; -use crate::config::{Config, HunkHeaderIncludeFilePath, HunkHeaderIncludeLineNumber}; +use crate::config::{ + Config, HunkHeaderIncludeCodeFragment, HunkHeaderIncludeFilePath, HunkHeaderIncludeLineNumber, +}; use crate::delta::{self, DiffType, InMergeConflict, MergeParents, State, StateMachine}; use crate::paint::{self, BgShouldFill, Painter, StyleSectionSpecifier}; use crate::style::{DecorationStyle, Style}; @@ -133,6 +135,7 @@ impl<'a> StateMachine<'a> { &self.config.hunk_header_style_include_file_path, &self.config.hunk_header_style_include_line_number, &HunkHeaderIncludeHunkLabel::Yes, + &self.config.hunk_header_style_include_code_fragment, ":", self.config, )?; @@ -229,13 +232,16 @@ pub fn write_line_of_code_with_optional_path_and_line_number( include_file_path: &HunkHeaderIncludeFilePath, include_line_number: &HunkHeaderIncludeLineNumber, include_hunk_label: &HunkHeaderIncludeHunkLabel, + include_code_fragment: &HunkHeaderIncludeCodeFragment, file_path_separator: &str, config: &Config, ) -> std::io::Result<()> { let (mut draw_fn, _, decoration_ansi_term_style) = draw::get_draw_function(decoration_style); let line = if config.color_only { line.to_string() - } else if !code_fragment.is_empty() { + } else if matches!(include_code_fragment, HunkHeaderIncludeCodeFragment::Yes) + && !code_fragment.is_empty() + { format!("{code_fragment} ") } else { "".to_string() |