From 51416056b210524df0bc1d2a4db96b4dbf340a8d Mon Sep 17 00:00:00 2001 From: Travis Swicegood Date: Tue, 1 Apr 2014 10:41:00 -0500 Subject: [PATCH] Add ability for themes to specify that you're viewing a tag along with Powerline implementation --- themes/base.theme.bash | 13 ++++++++++++- themes/powerline/powerline.theme.bash | 14 +++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/themes/base.theme.bash b/themes/base.theme.bash index 3a37ce8..157f088 100644 --- a/themes/base.theme.bash +++ b/themes/base.theme.bash @@ -83,7 +83,18 @@ function git_prompt_vars { fi SCM_PREFIX=${GIT_THEME_PROMPT_PREFIX:-$SCM_THEME_PROMPT_PREFIX} SCM_SUFFIX=${GIT_THEME_PROMPT_SUFFIX:-$SCM_THEME_PROMPT_SUFFIX} - SCM_BRANCH=$(git symbolic-ref -q --short HEAD || git describe --tags --exact-match 2> /dev/null) + + local ref=$(git symbolic-ref -q --short HEAD 2> /dev/null) + if [[ -n "$ref" ]]; then + SCM_BRANCH=$ref + SCM_IS_BRANCH=1 + SCM_IS_TAG=0 + else + SCM_BRANCH=$(git describe --tags --exact-match 2> /dev/null) + SCM_IS_TAG=1 + SCM_IS_BRANCH=0 + fi + # SCM_BRANCH=$(git symbolic-ref -q --short HEAD || git describe --tags --exact-match 2> /dev/null) SCM_CHANGE=$(git rev-parse HEAD 2>/dev/null) local ahead_re='.+ahead ([0-9]+).+' local behind_re='.+behind ([0-9]+).+' diff --git a/themes/powerline/powerline.theme.bash b/themes/powerline/powerline.theme.bash index 518f054..81598de 100644 --- a/themes/powerline/powerline.theme.bash +++ b/themes/powerline/powerline.theme.bash @@ -13,6 +13,12 @@ SCM_NONE_CHAR="" SCM_GIT_CHAR=" " SCM_GIT_BEHIND_CHAR="↓" SCM_GIT_AHEAD_CHAR="↑" +if [[ -z "$THEME_SCM_TAG_PREFIX" ]]; then + SCM_TAG_PREFIX="tag > " +else + SCM_TAG_PREFIX="$THEME_SCM_TAG_PREFIX" +fi + SCM_THEME_PROMPT_CLEAN="" SCM_THEME_PROMPT_DIRTY="" SCM_THEME_PROMPT_COLOR=238 @@ -75,7 +81,13 @@ function powerline_scm_prompt { else SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_CLEAN_COLOR} ${SCM_THEME_PROMPT_COLOR})" fi - [[ "${SCM_GIT_CHAR}" == "${SCM_CHAR}" ]] && SCM_PROMPT+=" ${SCM_CHAR}${SCM_BRANCH}${SCM_STATE}${SCM_GIT_BEHIND}${SCM_GIT_AHEAD}${SCM_GIT_STASH}" + if [[ "${SCM_GIT_CHAR}" == "${SCM_CHAR}" ]]; then + local tag="" + if [[ $SCM_IS_TAG -eq "1" ]]; then + tag=$SCM_TAG_PREFIX + fi + SCM_PROMPT+=" ${SCM_CHAR}${tag}${SCM_BRANCH}${SCM_STATE}${SCM_GIT_BEHIND}${SCM_GIT_AHEAD}${SCM_GIT_STASH}" + fi SCM_PROMPT="$(set_rgb_color ${LAST_THEME_COLOR} ${SCM_THEME_PROMPT_COLOR})${THEME_PROMPT_SEPARATOR}${normal}${SCM_PROMPT} ${normal}" LAST_THEME_COLOR=${SCM_THEME_PROMPT_COLOR} else -- 2.17.1