From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramkumar Ramachandra Subject: [PATCH 3/3] prompt: colorize ZSH prompt Date: Mon, 13 May 2013 19:19:18 +0530 Message-ID: <1368452958-31090-4-git-send-email-artagnon@gmail.com> References: <1368452958-31090-1-git-send-email-artagnon@gmail.com> Cc: Felipe Contreras , =?UTF-8?q?SZEDER=20G=C3=A1bor?= , Junio C Hamano To: Git List X-From: git-owner@vger.kernel.org Mon May 13 15:48:00 2013 Return-path: Envelope-to: gcvg-git-2@plane.gmane.org Received: from vger.kernel.org ([209.132.180.67]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Ubt6a-0000G7-9X for gcvg-git-2@plane.gmane.org; Mon, 13 May 2013 15:47:56 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753398Ab3EMNru (ORCPT ); Mon, 13 May 2013 09:47:50 -0400 Received: from mail-pb0-f41.google.com ([209.85.160.41]:56336 "EHLO mail-pb0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752707Ab3EMNrt (ORCPT ); Mon, 13 May 2013 09:47:49 -0400 Received: by mail-pb0-f41.google.com with SMTP id xb12so490694pbc.28 for ; Mon, 13 May 2013 06:47:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references; bh=N6DGAskgH2iaxa1iUfUU6pQd9g+BK9Uc2AKM2cD4kqs=; b=r5dD5UVvNolIeeNeKW+wq+uX5Iq12/pJJsNiTliIffxEUQyGHEQ//VZQbK4sOVqTTT vhxa0UsnzIeBNQ+YH0vNUuRnKKhNzvWfRL2ilB5dzVbNCox/4PsylrTzaHrGDeR5tdDm ohpSS2Z5U/U802tJbX0jpQ7ReqoBHZW7NNHT63cpIw/l00QDj4nNOP+tgC3SC55yBCAQ 21L8HY4YH22TBifbAvFB4l1w9fraYnKd8mVIeGKqw8i+qdLVTYrlqSkrqmBCUvQSVIzk pv3np8oVZFnYvKGSXfuFktvjO2zrY8JWHzY/MJcaNJxeU7FvHQoOVXoBR2+rBbGmBZf+ t18w== X-Received: by 10.66.158.234 with SMTP id wx10mr29761033pab.43.1368452868671; Mon, 13 May 2013 06:47:48 -0700 (PDT) Received: from luneth.maa.corp.collab.net ([182.71.239.158]) by mx.google.com with ESMTPSA id sq9sm15114287pab.5.2013.05.13.06.47.46 for (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 13 May 2013 06:47:48 -0700 (PDT) X-Mailer: git-send-email 1.8.3.rc1.57.g4ac1522 In-Reply-To: <1368452958-31090-1-git-send-email-artagnon@gmail.com> Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Archived-At: Add colors suitable for use in the ZSH prompt. Having learnt that the ZSH equivalent of PROMPT_COMMAND is precmd (), you can now use GIT_PS1_SHOWCOLORHINTS with ZSH. Signed-off-by: Ramkumar Ramachandra --- contrib/completion/git-prompt.sh | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh index 6943f86..e2dd8a8 100644 --- a/contrib/completion/git-prompt.sh +++ b/contrib/completion/git-prompt.sh @@ -20,7 +20,8 @@ # , which are strings you would put in $PS1 before # and after the status string generated by the git-prompt # machinery. e.g. -# PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "' +# Bash: PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "' +# ZSH: precmd () { __git_ps1 "%n" ":%~$ " "|%s" } # will show username, at-sign, host, colon, cwd, then # various status string, followed by dollar and SP, as # your prompt. @@ -227,6 +228,43 @@ __git_ps1_show_upstream () # places. __git_ps1_colorize_gitstring () { + if [[ -n ${ZSH_VERSION-} ]]; then + local c_red='%F{red}' + local c_green='%F{green}' + local c_lblue='%F{blue}' + local c_clear='%f' + local bad_color=$c_red + local ok_color=$c_green + local branch_color="$c_clear" + local flags_color="$c_lblue" + local branchstring="$c${b##refs/heads/}" + + if [ $detached = no ]; then + branch_color="$ok_color" + else + branch_color="$bad_color" + fi + + gitstring="$branch_color$branchstring$c_clear" + + if [ -n "$w$i$s$u$r$p" ]; then + gitstring="$gitstring$z" + fi + if [ "$w" = "*" ]; then + gitstring="$gitstring$bad_color$w" + fi + if [ -n "$i" ]; then + gitstring="$gitstring$ok_color$i" + fi + if [ -n "$s" ]; then + gitstring="$gitstring$flags_color$s" + fi + if [ -n "$u" ]; then + gitstring="$gitstring$bad_color$u" + fi + gitstring="$gitstring$c_clear$r$p" + return + fi local c_red='\e[31m' local c_green='\e[32m' local c_lblue='\e[1;34m' -- 1.8.3.rc1.57.g4ac1522