From 6e69c4d002fffc3fc7e56fb0d3f7e72ab1e3ec71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20GAUTIER?= Date: Fri, 6 Jan 2012 15:01:40 +0100 Subject: [PATCH 1/4] Update mercurial plugin --- plugins/mercurial/mercurial.plugin.zsh | 71 ++++++++++++++++++++++++++ themes/educatux.zsh-theme | 10 ++++ 2 files changed, 81 insertions(+) create mode 100644 themes/educatux.zsh-theme diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index 2988f0a46..c9e3291d6 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -1,3 +1,74 @@ +## Source : https://bitbucket.org/Josh/mercurial-for-zsh + +function chpwd_update_hg_vars() { + update_current_hg_vars +} + +function precmd_update_hg_vars(){ + if [ -n "$__EXECUTED_HG_COMMAND" ]; then + update_current_hg_vars + unset __EXECUTED_HG_COMMAND + fi +} + + +function preexec_update_hg_vars(){ + case "$1" in + hg*) + export __EXECUTED_HG_COMMAND=1 + ;; + esac +} + +function prompt_hg_info(){ + if [ -n "$__CURRENT_HG_BRANCH" ]; then + local s="[" + s+="$__CURRENT_HG_BRANCH" + case "$__CURRENT_HG_BRANCH_STATUS" in + ahead) + s+="↑" + ;; + diverged) + s+="↕" + ;; + behind) + s+="↓" + ;; + esac + if [ -n "$__CURRENT_HG_BRANCH_IS_DIRTY" ]; then + s+="⚡" + fi + s+="] " + + printf " %s%s" "%{${fg[yellow]}%}" $s + fi +} + +function update_current_hg_vars(){ + unset __CURRENT_HG_BRANCH + unset __CURRENT_HG_BRANCH_STATUS + unset __CURRENT_HG_BRANCH_IS_DIRTY + local st="$(hg status 2>/dev/null)" + local br="$(hg branch 2>/dev/null)" + if [ -n "$br" ]; then + local -a arr + arr=(${(f)br}) + export __CURRENT_HG_BRANCH="$(echo $arr[1])" + fi + if [ -n "$st" ]; then + if echo $st | grep "nothing to commit (working directory clean)" >/dev/null; then + else + export __CURRENT_HG_BRANCH_IS_DIRTY='1' + fi + fi +} + +preexec_functions+='preexec_update_hg_vars' +precmd_functions+='precmd_update_hg_vars' +chpwd_functions+='chpwd_update_hg_vars' + +# Set the prompt. +# PROMPT=$'%{${fg[cyan]}%}%B%~%b$(prompt_hg_info)%{${fg[default]}%} ' # Mercurial alias hgc='hg commit -v' diff --git a/themes/educatux.zsh-theme b/themes/educatux.zsh-theme new file mode 100644 index 000000000..baed1fc8d --- /dev/null +++ b/themes/educatux.zsh-theme @@ -0,0 +1,10 @@ +PROMPT=$' +%{$fg[blue]%}%/%{$reset_color%} $(git_prompt_info)%{$fg[white]%}$(prompt_hg_info)%{$fg[white]%}[%n@%m]%{$reset_color%} %{$fg[white]%}[%T]%{$reset_color%} +%{$fg_bold[black]%}>%{$reset_color%} ' + +PROMPT2="%{$fg_blod[black]%}%_> %{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}[" +ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%} " +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_CLEAN="" From 3c002d899c0d35467d9a916f0f716a74fe0f3969 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20GAUTIER?= Date: Fri, 6 Jan 2012 16:19:04 +0100 Subject: [PATCH 2/4] Add auto-execution functions --- plugins/mercurial/mercurial.plugin.zsh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index c9e3291d6..91d6343a9 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -63,6 +63,10 @@ function update_current_hg_vars(){ fi } +typeset -ga preexec_functions +typeset -ga precmd_functions +typeset -ga chpwd_functions + preexec_functions+='preexec_update_hg_vars' precmd_functions+='precmd_update_hg_vars' chpwd_functions+='chpwd_update_hg_vars' From e062899599eb17cd77b88f1cd6a47c7c97eb7e9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20GAUTIER?= Date: Fri, 6 Jan 2012 16:23:44 +0100 Subject: [PATCH 3/4] Update mercurial symbol --- plugins/mercurial/mercurial.plugin.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index 91d6343a9..f71783c16 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -26,17 +26,17 @@ function prompt_hg_info(){ s+="$__CURRENT_HG_BRANCH" case "$__CURRENT_HG_BRANCH_STATUS" in ahead) - s+="↑" + s+=" ↑" ;; diverged) - s+="↕" + s+=" ↕" ;; behind) - s+="↓" + s+=" ↓" ;; esac if [ -n "$__CURRENT_HG_BRANCH_IS_DIRTY" ]; then - s+="⚡" + s+=" ⚡" fi s+="] " From 2da5046dc7ce5d5d1ba3365e9b43a3cae06a6fa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20GAUTIER?= Date: Tue, 10 Jan 2012 21:39:59 +0100 Subject: [PATCH 4/4] Update Mercurial functions --- plugins/mercurial/mercurial.plugin.zsh | 51 ++++++-------------------- 1 file changed, 12 insertions(+), 39 deletions(-) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index f71783c16..e850b5321 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -1,46 +1,30 @@ ## Source : https://bitbucket.org/Josh/mercurial-for-zsh -function chpwd_update_hg_vars() { - update_current_hg_vars -} - -function precmd_update_hg_vars(){ - if [ -n "$__EXECUTED_HG_COMMAND" ]; then - update_current_hg_vars - unset __EXECUTED_HG_COMMAND - fi -} - - -function preexec_update_hg_vars(){ - case "$1" in - hg*) - export __EXECUTED_HG_COMMAND=1 - ;; - esac -} - function prompt_hg_info(){ + __CURRENT_DIR_IS_REPO=$(hg summary 2> /dev/null) || return + + if [ -n "$__CURRENT_DIR_IS_REPO" ]; then + update_current_hg_vars + fi + if [ -n "$__CURRENT_HG_BRANCH" ]; then - local s="[" - s+="$__CURRENT_HG_BRANCH" + local s="$__CURRENT_HG_BRANCH" case "$__CURRENT_HG_BRANCH_STATUS" in ahead) - s+=" ↑" + d="↑" ;; diverged) - s+=" ↕" + d="↕" ;; behind) - s+=" ↓" + d="↓" ;; esac if [ -n "$__CURRENT_HG_BRANCH_IS_DIRTY" ]; then - s+=" ⚡" + d="⚡" fi - s+="] " - printf " %s%s" "%{${fg[yellow]}%}" $s + printf "%s[%s %s%s%s] " "%{${fg[yellow]}%}" $s "%{${fg[red]}%}" $d "%{${fg[yellow]}%}" fi } @@ -63,17 +47,6 @@ function update_current_hg_vars(){ fi } -typeset -ga preexec_functions -typeset -ga precmd_functions -typeset -ga chpwd_functions - -preexec_functions+='preexec_update_hg_vars' -precmd_functions+='precmd_update_hg_vars' -chpwd_functions+='chpwd_update_hg_vars' - -# Set the prompt. -# PROMPT=$'%{${fg[cyan]}%}%B%~%b$(prompt_hg_info)%{${fg[default]}%} ' - # Mercurial alias hgc='hg commit -v' alias hgb='hg branch -v'