From 2c24aa69ffbecae6c4eb8f541c6f3da345241462 Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Fri, 2 Mar 2012 11:49:03 +0100 Subject: [Prompts] Hurrah !! Git-rebases are managed better than ever, with squishable git-hash :) --- 12_Prompts.zsh | 51 ++++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 23 deletions(-) (limited to '12_Prompts.zsh') diff --git a/12_Prompts.zsh b/12_Prompts.zsh index 3664b2b..4157d03 100644 --- a/12_Prompts.zsh +++ b/12_Prompts.zsh @@ -295,29 +295,34 @@ __update_prompt_elements() then if [ $spaceleft -lt $(( $PATHSIZE + $GITBRANCHSIZE )) ] then - local unbreakablegittail - if [ "$(echo $GITBRANCH | grep "^\[rebase ")" = "" ] - then - # reduce the git-branch until it is shrinked to $minimalgitsize characters max. - - if [ $GITBRANCH[-1] = ")" ] - then - unbreakablegittail=${${(M)GITBRANCH%\~*}} - [ "$unbreakablegittail" = "" -a $GITBRANCHSIZE -gt $minimalgitsize ] && unbreakablegittail=")" - fi - if [ $GITBRANCHSIZE -gt $minimalgitsize ] - then - GITBRANCHSIZE=$(( $spaceleft - $PATHSIZE )) - [ $GITBRANCHSIZE -lt $minimalgitsize ] && GITBRANCHSIZE=$minimalgitsize - fi - GITBRANCH=`print -Pn "%"$(($GITBRANCHSIZE - ${#unbreakablegittail}))">..>"${GITBRANCH%\~*}${unbreakablegittail:+"%"${#unbreakablegittail}"<<"$GITBRANCH}` - else - - # - # TODO : réduire la taille du hash, s'il y en a un. - # - - fi + local unbreakablegittail rebasing + + if [ "$(echo $GITBRANCH | grep "^ \[")" != "" ] + then + # + # TODO : réduire la taille du hash, s'il y en a un. + # + rebasing=$GITBRANCH + GITBRANCH=${${GITBRANCH/*../}/] */} + fi + + # reduce the git-branch until it is shrinked to $minimalgitsize characters max. + if [ $GITBRANCH[-1] = ")" ] + then + unbreakablegittail=${${(M)GITBRANCH%\~*}} + [ "$unbreakablegittail" = "" -a $GITBRANCHSIZE -gt $minimalgitsize ] && unbreakablegittail=$GITBRANCH[-1] + fi + if [ $GITBRANCHSIZE -gt $minimalgitsize ] + then + GITBRANCHCHUNK=$(( $GITBRANCHSIZE - ($spaceleft - $PATHSIZE) )) + [ $((${#GITBRANCH} - $GITBRANCHCHUNK)) -lt $minimalgitsize ] && GITBRANCHCHUNK=$((${#GITBRANCH} - $minimalgitsize)) + fi + GITBRANCH=`print -Pn "%"$(( (${#GITBRANCH} - $GITBRANCHCHUNK) - ${#unbreakablegittail}))">¬>"${GITBRANCH%\~*}${unbreakablegittail:+"%"${#unbreakablegittail}"<<"$GITBRANCH}` + + if [ -n "$rebasing" ] + then + GITBRANCH=${rebasing/..*]/..$GITBRANCH]} + fi fi fi # then we reduce the path until it reaches the last path element, -- cgit v1.2.3