Merge branch 'jk/add-i-highlight'
* jk/add-i-highlight: add--interactive: allow custom diff highlighting programs
This commit is contained in:
commit
2052c52d9a
@ -1887,6 +1887,14 @@ interactive.singleKey::
|
||||
setting is silently ignored if portable keystroke input
|
||||
is not available; requires the Perl module Term::ReadKey.
|
||||
|
||||
interactive.diffFilter::
|
||||
When an interactive command (such as `git add --patch`) shows
|
||||
a colorized diff, git will pipe the diff through the shell
|
||||
command defined by this configuration variable. The command may
|
||||
mark up the diff further for human consumption, provided that it
|
||||
retains a one-to-one correspondence with the lines in the
|
||||
original diff. Defaults to disabled (no filtering).
|
||||
|
||||
log.abbrevCommit::
|
||||
If true, makes linkgit:git-log[1], linkgit:git-show[1], and
|
||||
linkgit:git-whatchanged[1] assume `--abbrev-commit`. You may
|
||||
|
@ -45,6 +45,7 @@ my ($diff_new_color) =
|
||||
my $normal_color = $repo->get_color("", "reset");
|
||||
|
||||
my $diff_algorithm = $repo->config('diff.algorithm');
|
||||
my $diff_filter = $repo->config('interactive.difffilter');
|
||||
|
||||
my $use_readkey = 0;
|
||||
my $use_termcap = 0;
|
||||
@ -754,7 +755,14 @@ sub parse_diff {
|
||||
my @diff = run_cmd_pipe("git", @diff_cmd, "--", $path);
|
||||
my @colored = ();
|
||||
if ($diff_use_color) {
|
||||
@colored = run_cmd_pipe("git", @diff_cmd, qw(--color --), $path);
|
||||
my @display_cmd = ("git", @diff_cmd, qw(--color --), $path);
|
||||
if (defined $diff_filter) {
|
||||
# quotemeta is overkill, but sufficient for shell-quoting
|
||||
my $diff = join(' ', map { quotemeta } @display_cmd);
|
||||
@display_cmd = ("$diff | $diff_filter");
|
||||
}
|
||||
|
||||
@colored = run_cmd_pipe(@display_cmd);
|
||||
}
|
||||
my (@hunk) = { TEXT => [], DISPLAY => [], TYPE => 'header' };
|
||||
|
||||
@ -765,7 +773,7 @@ sub parse_diff {
|
||||
}
|
||||
push @{$hunk[-1]{TEXT}}, $diff[$i];
|
||||
push @{$hunk[-1]{DISPLAY}},
|
||||
($diff_use_color ? $colored[$i] : $diff[$i]);
|
||||
(@colored ? $colored[$i] : $diff[$i]);
|
||||
}
|
||||
return @hunk;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user