From: Junio C Hamano <gitster@pobox.com>
To: Dan Zwell <dzwell@zwell.net>
Cc: Jeff King <peff@peff.net>,
"Shawn O. Pearce" <spearce@spearce.org>,
Wincent Colaiuta <win@wincent.com>,
Git Mailing List <git@vger.kernel.org>,
Jonathan del Strother <maillist@steelskies.com>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Frank Lichtenheld <frank@lichtenheld.de>
Subject: Re: Subject: [PATCH 2/3] Let git-add--interactive read colors from .gitconfig
Date: Sun, 11 Nov 2007 01:53:25 -0800 [thread overview]
Message-ID: <7vve89f6qy.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <20071110202351.7b4544aa@paradox.zwell.net> (Dan Zwell's message of "Sat, 10 Nov 2007 20:23:51 -0600")
Dan Zwell <dzwell@zwell.net> writes:
> @@ -8,12 +9,18 @@ if ($color_config=~/true|always/ || -t STDOUT && $color_config=~/auto/) {
> eval { require Term::ANSIColor; };
> if (!$@) {
> $use_color = 1;
> + # Set interactive colors:
> +
> + # Grab the 3 main colors in git color string format, with sane
> + # (visible) defaults:
> + my $repo = Git->repository();
> + $prompt_color = Git::color_to_ansi_code(
> + Git::config($repo, "color.interactive.prompt") || "bold blue");
> + $header_color = Git::color_to_ansi_code(
> + Git::config($repo, "color.interactive.header") || "bold");
> + $help_color = Git::color_to_ansi_code(
> + Git::config($repo, "color.interactive.help") || "red bold");
> + $normal_color = Git::color_to_ansi_code("normal");
Makes me wonder if you are better off with two new helper
functions defined in Git.pm, as in:
$prompt_color = $repo->config_color("interactive.prompt") || "bold blue")
$normal_color = Git::color_to_ansi_code("normal");
> +sub color_to_ansi_code {
> + my ($git_string) = @_;
> + my @ansi_words;
> + my %attrib_mappings = (
> + "bold" => "bold",
> + "ul" => "underline",
> + "blink" => "blink",
> + # not supported:
> + #"dim" => "",
> + "reverse" => "reverse"
> + );
I do not like a hash variable name that says it is a "mapping".
It being a hash is enough indication that it is a mapping.
You are better off naming such a mapping as if it is a function
that takes one parameter (in this case, git name) and returns a
single value (perl name). So I'd probably say:
my %perl_attrib = ( ... );
(or "git_attrib_to_perl"). A use site of such a hash would look
like this:
push @perl_words, $perl_attrib{'ul'};
push @perl_names, $git_attrib_to_perl{'blink'};
Maybe it is just me, but aren't these easier to read?
> + my ($fg_done, $word);
> +
> + foreach $word (split /\s+/, $git_string) {
> + if ($word =~ /normal/) {
$word eq 'normal' ?
> + $fg_done = "true";
> + }
> + elsif ($word =~ /black|red|green|yellow/ ||
> + $word =~ /blue|magenta|cyan|white/) {
exists $color_name{$word}
with
my %color_name = map { $_ => 1 } qw(black red ... white);
at the beginning?
> + # is a color.
> + if ($fg_done) {
> + # this is the background
> + push @ansi_words, "on_" . $word;
> + }
> + else {
> + # this is foreground
> + $fg_done = "true";
> + push @ansi_words, $word;
> + }
> + }
> + else {
> + # this is an attribute, not a color.
> + if ($attrib_mappings{$word}) {
exists $git_attrib_to_perl{$word}
?
next prev parent reply other threads:[~2007-11-11 9:53 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-13 4:13 [PATCH] Color support added to git-add--interactive Dan Zwell
2007-10-13 8:12 ` Jeff King
2007-10-13 12:49 ` Frank Lichtenheld
2007-10-13 12:25 ` Johannes Schindelin
2007-10-13 14:45 ` Wincent Colaiuta
2007-10-13 16:38 ` Jean-Luc Herren
2007-10-13 17:14 ` Wincent Colaiuta
2007-10-13 18:31 ` Andreas Ericsson
2007-10-13 16:38 ` Johannes Schindelin
2007-10-13 17:27 ` Jeff King
2007-10-13 17:51 ` Jeff King
2007-10-13 20:03 ` Dan Zwell
2007-10-13 20:36 ` Wincent Colaiuta
2007-10-13 21:50 ` Dan Z
2007-10-13 22:23 ` Jean-Luc Herren
2007-10-15 3:43 ` Jeff King
2007-10-17 0:47 ` revised: " Dan Zwell
2007-10-17 1:51 ` Shawn O. Pearce
2007-10-17 7:57 ` Dan Zwell
2007-10-17 8:11 ` Shawn O. Pearce
2007-10-22 21:32 ` [PATCH 1/2] Added basic color support to git add --interactive Dan Zwell
2007-10-23 2:11 ` [PATCH] resend of git-add--interactive color patch against spearce/pu Dan Zwell
2007-10-23 2:19 ` [PATCH] Let git-add--interactive read "git colors" from git-config Dan Zwell
2007-10-23 4:29 ` Jeff King
2007-10-23 4:40 ` Shawn O. Pearce
2007-10-23 4:03 ` [PATCH 1/2] Added basic color support to git add --interactive Jeff King
2007-10-23 6:28 ` Wincent Colaiuta
2007-10-23 6:41 ` Jeff King
2007-10-23 7:44 ` Wincent Colaiuta
2007-10-22 21:40 ` [PATCH 2/2] Let git-add--interactive read colors from git-config Dan Zwell
2007-10-23 4:27 ` Jeff King
2007-10-23 8:52 ` Dan Zwell
2007-11-03 3:41 ` [PATCH 1/2] Added basic color support to git add --interactive Dan Zwell
2007-11-04 4:57 ` Jeff King
2007-11-04 5:36 ` Junio C Hamano
2007-11-04 5:43 ` Jeff King
2007-11-11 0:01 ` [PATCH 0/3] Adding colors to git-add--interactive Dan Zwell
2007-11-11 7:54 ` Jeff King
2007-11-11 8:23 ` Junio C Hamano
2007-11-11 8:39 ` Dan Zwell
2007-11-22 10:54 ` [PATCH 0/5] Colors for git-add--interactive Dan Zwell
2007-11-22 11:57 ` Jeff King
2007-11-22 19:20 ` Junio C Hamano
2007-11-22 10:54 ` [PATCH 1/5] Added basic color support to git add --interactive Dan Zwell
2007-11-22 10:55 ` [PATCH 2/5] Don't return 'undef' in case called in a vector context Dan Zwell
2007-11-22 12:06 ` Jeff King
2007-11-22 21:17 ` Junio C Hamano
2007-11-23 4:15 ` Dan Zwell
2007-11-22 10:55 ` [PATCH 3/5] Added config_default($key, $default) to Git.pm Dan Zwell
2007-11-22 12:14 ` Jeff King
2007-11-22 10:56 ` [PATCH 4/5] Let git-add--interactive read colors from configuration Dan Zwell
2007-11-22 12:18 ` Jeff King
2007-11-22 21:28 ` Junio C Hamano
2007-11-22 22:30 ` Jeff King
2007-11-23 5:32 ` Dan Zwell
2007-11-23 9:09 ` Jeff King
2007-11-23 9:17 ` Junio C Hamano
2007-11-22 10:56 ` [PATCH 5/5] Added diff hunk coloring to git-add--interactive Dan Zwell
2007-11-22 12:25 ` Jeff King
2007-11-22 21:37 ` Junio C Hamano
2007-11-23 10:21 ` Jeff King
2007-11-22 22:35 ` Junio C Hamano
2007-11-11 0:01 ` [PATCH 1/3] Added basic color support to git add --interactive Dan Zwell
2007-11-11 0:02 ` [PATCH 2/3] Let git-add--interactive read colors from .gitconfig Dan Zwell
2007-11-11 0:03 ` [PATCH 3/3] Added diff hunk coloring to git-add--interactive Dan Zwell
2007-11-11 10:00 ` Junio C Hamano
2007-11-11 2:21 ` [PATCH 0/3] Adding colors " Dan Zwell
2007-11-11 2:23 ` Subject: [PATCH 1/3] Added basic color support to git add --interactive Dan Zwell
2007-11-11 19:56 ` Junio C Hamano
2007-11-11 2:23 ` Subject: [PATCH 2/3] Let git-add--interactive read colors from .gitconfig Dan Zwell
2007-11-11 9:53 ` Junio C Hamano [this message]
2007-11-11 10:34 ` Junio C Hamano
2007-11-13 1:39 ` Dan Zwell
2007-11-13 2:32 ` Junio C Hamano
2007-11-13 2:55 ` Dan Zwell
2007-11-13 7:26 ` Jeff King
2007-11-13 7:29 ` Junio C Hamano
2007-11-13 8:25 ` Dan Zwell
2007-11-13 9:46 ` Jakub Narebski
2007-11-03 3:41 ` [PATCH 2/2] " Dan Zwell
2007-11-03 5:06 ` *[PATCH " Junio C Hamano
2007-11-03 7:26 ` Dan Zwell
2007-11-03 18:11 ` Junio C Hamano
2007-10-15 4:12 ` [PATCH] Color support added to git-add--interactive Jeff King
2007-10-13 20:21 ` Tom Tobin
2007-10-13 20:26 ` Tom Tobin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vve89f6qy.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=dzwell@zwell.net \
--cc=frank@lichtenheld.de \
--cc=git@vger.kernel.org \
--cc=maillist@steelskies.com \
--cc=peff@peff.net \
--cc=spearce@spearce.org \
--cc=win@wincent.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.