App-ccdiff
view release on metacpan or search on metacpan
* Fix doc typo (issue#4)
0.20 - 2018-08-16
* Start inline documentation
* Support configuration
* Add -I/--index
* Add --verbose meaning
* Add --list-colors
0.10 - 2018-08-15
* Allow bold variants for colors
* Start of -B implementation
0.09 - 2018-08-10
* Header for unified diff
0.08 - 2018-08-02
* Implement -b
* Implement -Z
* Implement -i
* [`colordiff`](https://www.colordiff.org/)
* [`klondiff`](https://github.com/pierstitus/klondiff)
* [`diff-so-fancy`](https://github.com/so-fancy/diff-so-fancy)
* `git`
This however requires a long command:
```
$ git -c color.diff.new='bold reverse green' \
-c color.diff.old='bold reverse red' \
diff --no-index -U0 --no-color \
--word-diff=color --word-diff-regex=. \
<file1> <file2>
```
An alternative for integration with git is `diff-so-fancy`
## ASCII
* `vimdiff`
require Pod::Man;
my $p = Pod::Man->new ();
open my $fh, "|-", "nroff", "-man";
$p->parse_from_file ($0, $fh);
close $fh;
exit 0;
} # pod_nroff
# Color initialization
for ($old_color, $new_color, $rev_color) {
s/^(.*)[ _]bold$/bold $1/i;
s/^bold_/bold /i;
}
my %clr = map { $_ => color (s{^(.*)[ _]bold$}{bold $1}ir =~
s{^bold[ _]}{bold }ir) }
map {( $_, "on_$_", "bold $_" )}
qw( red green blue black white cyan magenta yellow );
$clr{$_} //= color ($_) for tac_colors ();
$no_colors and $clr{$_} = "" for keys %clr;
$clr{none} = $clr{on_none} = "";
my ($reset, $bg_new, $bg_old,
$chr_cml, $chr_cmr, $chr_ctx, $chr_eli, $chr_eql, $chr_lft,
$chr_new, $chr_old, $chr_rgt,
$clr_dbg, $clr_grn, $clr_new, $clr_old, $clr_red, $clr_rev,
$cmp_sub) = (RESET);
$$c && exists $clr{$$c} and next;
warn "color ", $$c // "(undefined)", " is unknown, using $def instead\n";
$$c = $def;
}
$clr_red = $clr{$old_color};
$clr_grn = $clr{$new_color};
$clr_rev = $clr{$rev_color};
$clr_dbg = $opt_r && exists $clr{"on_$rc{verbose}"} ? $clr{"on_$rc{verbose}"} : $clr{$rc{verbose}};
$reset = $no_colors ? "" : RESET;
$bg_old = $clr{$rc{bg_old} || ($opt_r ? "on_$old_color" =~ s/bold //ir :
"on_$rev_color" =~ s/bold //ir)};
$bg_new = $clr{$rc{bg_new} || ($opt_r ? "on_$new_color" =~ s/bold //ir :
"on_$rev_color" =~ s/bold //ir)};
$clr_old = $opt_r ? $clr_rev . $bg_old : $clr_red . $bg_old;
$clr_new = $opt_r ? $clr_rev . $bg_new : $clr_grn . $bg_new;
$opt_s and ($clr_new, $clr_old) = ($clr_old, $clr_new);
# Indicators
if ($opt_a) {
@rc{qw( chr_old chr_new chr_cml chr_cmr chr_eli chr_eli_v )} = qw( ^ ^ > < - <> );
}
elsif (!$opt_U) {
$rc{$_} = encode ("utf-8", $rc{$_}) for qw( chr_old chr_new chr_cml chr_cmr chr_eli chr_eli_v );
}
=item --pink -p
Change the default C<red> for deleted text to the color closest to pink that
is supported by L<Term::ANSIColor>: C<magenta>.
=item --reverse -r
Reverse/invert the foreground and background for the colored indicators.
If the foreground color has C<bold>, it will be stripped from the new background
color.
=item --swap -s
Swap the colors for new and old.
=item --list-colors
List available colors and exit.
=item new (--new)
new : green
Defines the color to be used for added text. The default is C<green>.
The color C<none> is also accepted and disables this color.
Any color accepted by L<Term::ANSIColor> is allowed. Any other color will
result in a warning. This option can include C<bold> either as prefix or
as suffix.
This option may also be specified as
new-color
new_color
new-colour
new_colour
=item old (--old)
old : red
Defines the color to be used for deleted text. The default is C<red>.
The color C<none> is also accepted and disables this color.
Any color accepted by L<Term::ANSIColor> is allowed. Any other color will
result in a warning. This option can include C<bold> either as prefix or
as suffix.
This option may also be specified as
old-color
old_color
old-colour
old_colour
=item bg (--bg)
bg : white
Defines the color to be used as background for changed text. The default is
C<white>.
The color C<none> is also accepted and disables this color.
Any color accepted by L<Term::ANSIColor> is allowed. Any other color will
result in a warning. The C<bold> attribute is not allowed.
This option may also be specified as
bg-color
bg_color
bg-colour
bg_colour
background
background-color
background_color
lib/App/ccdiff.pm view on Meta::CPAN
require Pod::Man;
my $p = Pod::Man->new ();
open my $fh, "|-", "nroff", "-man";
$p->parse_from_file ($0, $fh);
close $fh;
exit 0;
} # pod_nroff
# Color initialization
for ($old_color, $new_color, $rev_color) {
s/^(.*)[ _]bold$/bold $1/i;
s/^bold_/bold /i;
}
my %clr = map { $_ => color (s{^(.*)[ _]bold$}{bold $1}ir =~
s{^bold[ _]}{bold }ir) }
map {( $_, "on_$_", "bold $_" )}
qw( red green blue black white cyan magenta yellow );
$clr{$_} //= color ($_) for tac_colors ();
$no_colors and $clr{$_} = "" for keys %clr;
$clr{none} = $clr{on_none} = "";
my ($reset, $bg_new, $bg_old,
$chr_cml, $chr_cmr, $chr_ctx, $chr_eli, $chr_eql, $chr_lft,
$chr_new, $chr_old, $chr_rgt,
$clr_dbg, $clr_grn, $clr_new, $clr_old, $clr_red, $clr_rev,
$cmp_sub) = (RESET);
lib/App/ccdiff.pm view on Meta::CPAN
$$c && exists $clr{$$c} and next;
warn "color ", $$c // "(undefined)", " is unknown, using $def instead\n";
$$c = $def;
}
$clr_red = $clr{$old_color};
$clr_grn = $clr{$new_color};
$clr_rev = $clr{$rev_color};
$clr_dbg = $opt_r && exists $clr{"on_$rc{verbose}"} ? $clr{"on_$rc{verbose}"} : $clr{$rc{verbose}};
$reset = $no_colors ? "" : RESET;
$bg_old = $clr{$rc{bg_old} || ($opt_r ? "on_$old_color" =~ s/bold //ir :
"on_$rev_color" =~ s/bold //ir)};
$bg_new = $clr{$rc{bg_new} || ($opt_r ? "on_$new_color" =~ s/bold //ir :
"on_$rev_color" =~ s/bold //ir)};
$clr_old = $opt_r ? $clr_rev . $bg_old : $clr_red . $bg_old;
$clr_new = $opt_r ? $clr_rev . $bg_new : $clr_grn . $bg_new;
$opt_s and ($clr_new, $clr_old) = ($clr_old, $clr_new);
# Indicators
if ($opt_a) {
@rc{qw( chr_old chr_new chr_cml chr_cmr chr_eli chr_eli_v )} = qw( ^ ^ > < - <> );
}
elsif (!$opt_U) {
$rc{$_} = encode ("utf-8", $rc{$_}) for qw( chr_old chr_new chr_cml chr_cmr chr_eli chr_eli_v );
}
lib/App/ccdiff.pm view on Meta::CPAN
=item --pink -p
Change the default C<red> for deleted text to the color closest to pink that
is supported by L<Term::ANSIColor>: C<magenta>.
=item --reverse -r
Reverse/invert the foreground and background for the colored indicators.
If the foreground color has C<bold>, it will be stripped from the new background
color.
=item --swap -s
Swap the colors for new and old.
=item --list-colors
List available colors and exit.
lib/App/ccdiff.pm view on Meta::CPAN
=item new (--new)
new : green
Defines the color to be used for added text. The default is C<green>.
The color C<none> is also accepted and disables this color.
Any color accepted by L<Term::ANSIColor> is allowed. Any other color will
result in a warning. This option can include C<bold> either as prefix or
as suffix.
This option may also be specified as
new-color
new_color
new-colour
new_colour
=item old (--old)
old : red
Defines the color to be used for deleted text. The default is C<red>.
The color C<none> is also accepted and disables this color.
Any color accepted by L<Term::ANSIColor> is allowed. Any other color will
result in a warning. This option can include C<bold> either as prefix or
as suffix.
This option may also be specified as
old-color
old_color
old-colour
old_colour
=item bg (--bg)
bg : white
Defines the color to be used as background for changed text. The default is
C<white>.
The color C<none> is also accepted and disables this color.
Any color accepted by L<Term::ANSIColor> is allowed. Any other color will
result in a warning. The C<bold> attribute is not allowed.
This option may also be specified as
bg-color
bg_color
bg-colour
bg_colour
background
background-color
background_color
( run in 0.719 second using v1.01-cache-2.11-cpan-39bf76dae61 )