Skip to content

Commit

Permalink
feat(ref): support push remote
Browse files Browse the repository at this point in the history
  • Loading branch information
olets committed Jan 15, 2022
1 parent 4016b9b commit 2d114d3
Show file tree
Hide file tree
Showing 3 changed files with 119 additions and 26 deletions.
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ Name | Type | Description | Default
Name | Type | Description | Default
---|---|---|---
`GIT_PROMPT_KIT_CUSTOM_CONTENT` | string | The code for the custom component* | `%2~`**
`GIT_PROMPT_KIT_DEFAULT_PUSH_REMOTE_NAME` | string | The default Git push remote | `upstream`
`GIT_PROMPT_KIT_DEFAULT_REMOTE_NAME` | string | The default Git remote | `origin`
`GIT_PROMPT_KIT_HIDDEN_HOSTS` | array | The hosts that will not be included in the prompt | `()`
`GIT_PROMPT_KIT_HIDDEN_USERS` | array | The users that will not be included in the prompt | `()`
Expand Down Expand Up @@ -172,6 +173,8 @@ Name | Type | Description | Default
`GIT_PROMPT_KIT_SYMBOL_MODIFIED_STAGED` | string | Follows the Git staged modified file segment | `M_`
`GIT_PROMPT_KIT_SYMBOL_MODIFIED` | string | Follows the Git unstaged modified file segment | `_M`
`GIT_PROMPT_KIT_SYMBOL_NEW` | string | Follows Git new file segment | `A_`
`GIT_PROMPT_KIT_SYMBOL_PUSH` | string | Precedes the Git push remote | `@{push}`
`GIT_PROMPT_KIT_SYMBOL_REMOTE` | string | Precedes the Git remote | `@{u}`
`GIT_PROMPT_KIT_SYMBOL_SKIP_WORKTREE` | string | Follows the Git skip-worktree file segment | ``
`GIT_PROMPT_KIT_SYMBOL_STASH` | string | Follows the Git stash segment | ``
`GIT_PROMPT_KIT_SYMBOL_TAG` | string | Precedes the Git tag | `@`
Expand Down Expand Up @@ -210,8 +213,10 @@ Name | Type | Description
---|---|---
`GIT_PROMPT_KIT_ACTION` | prompt string | Git: current action (e.g. "rebase")
`GIT_PROMPT_KIT_AHEAD` | prompt string | Git: commits ahead of the upstream
`GIT_PROMPT_KIT_PUSH_AHEAD` | prompt string | Git: commits ahead of the push remote
`GIT_PROMPT_KIT_ASSUMED_UNCHANGED` | prompt string | Git: assume-unchanged files count
`GIT_PROMPT_KIT_BEHIND` | prompt string | Git: commits behind the upstream
`GIT_PROMPT_KIT_PUSH_BEHIND` | prompt string | Git: commits behind the push remote
`GIT_PROMPT_KIT_CHAR` | prompt string | Prompt character
`GIT_PROMPT_KIT_CONFLICTED` | prompt string | Git: conflicted files count
`GIT_PROMPT_KIT_CUSTOM` | prompt string | Custom (current working directory by default, see [Content Options](#content-options))
Expand All @@ -221,18 +226,19 @@ Name | Type | Description
`GIT_PROMPT_KIT_MODIFIED_STAGED` | prompt string | Git: staged modified files count
`GIT_PROMPT_KIT_MODIFIED` | prompt string | Git: unstaged modified files count
`GIT_PROMPT_KIT_NEW` | prompt string | Git: (staged) new files count
`GIT_PROMPT_KIT_PUSH` | prompt string | Git: push remote if not the default
`GIT_PROMPT_KIT_SKIP_WORKTREE` | prompt string | Git: skip-worktree files count
`GIT_PROMPT_KIT_STASHES` | prompt string | Git: stash count
`GIT_PROMPT_KIT_TAG` | prompt string | Git: up to one tag at HEAD
`GIT_PROMPT_KIT_UNTRACKED` | prompt string | Git: untracked (not staged) files count
`GIT_PROMPT_KIT_UPSTREAM` | prompt string | Git: "local" if no upstream; upstream branch if the name differs from the local branch; upstream remote and branch if the remote is not the default
`GIT_PROMPT_KIT_REMOTE` | prompt string | Git: "local" if no upstream; upstream branch if the name differs from the local branch; upstream remote and branch if the remote is not the default
`GIT_PROMPT_KIT_USERHOST` | prompt string | User (if not configured as hidden) and host (if not configured as hidden)

### Molecule components

Name | Type | Description
---|---|---
`GIT_PROMPT_KIT_REF` | prompt string | `GIT_PROMPT_KIT_HEAD`, `GIT_PROMPT_KIT_AHEAD`, `GIT_PROMPT_KIT_BEHIND`, `GIT_PROMPT_KIT_UPSTREAM`, and `GIT_PROMPT_KIT_TAG`
`GIT_PROMPT_KIT_REF` | prompt string | `GIT_PROMPT_KIT_HEAD`, `GIT_PROMPT_KIT_AHEAD`, `GIT_PROMPT_KIT_BEHIND`, `GIT_PROMPT_KIT_REMOTE`, `GIT_PROMPT_KIT_PUSH`, and `GIT_PROMPT_KIT_TAG`
`GIT_PROMPT_KIT_STATUS_EXTENDED` | prompt string | `GIT_PROMPT_KIT_STASHES`, `GIT_PROMPT_KIT_ASSUMED_UNCHANGED`, and `GIT_PROMPT_KIT_SKIP_WORKTREE`
`GIT_PROMPT_KIT_STATUS` | prompt string | `GIT_PROMPT_KIT_UNTRACKED`, `GIT_PROMPT_KIT_CONFLICTED`, `GIT_PROMPT_KIT_DELETED`, `GIT_PROMPT_KIT_MODIFIED`, `GIT_PROMPT_KIT_NEW`, `GIT_PROMPT_KIT_DELETED_STAGED`, and `GIT_PROMPT_KIT_MODIFIED_STAGED`

Expand Down
6 changes: 3 additions & 3 deletions Recipes.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ PROMPT+='${GIT_PROMPT_KIT_HEAD:+git:($GIT_PROMPT_KIT_HEAD}'
PROMPT+='${GIT_PROMPT_KIT_ACTION:+ $GIT_PROMPT_KIT_ACTION}'
PROMPT+='${GIT_PROMPT_KIT_BEHIND:+ $GIT_PROMPT_KIT_BEHIND}'
PROMPT+='${GIT_PROMPT_KIT_AHEAD:+ $GIT_PROMPT_KIT_AHEAD}'
PROMPT+='${GIT_PROMPT_KIT_UPSTREAM:+ $GIT_PROMPT_KIT_UPSTREAM}'
PROMPT+='${GIT_PROMPT_KIT_REMOTE:+ $GIT_PROMPT_KIT_REMOTE}'
PROMPT+='${GIT_PROMPT_KIT_HEAD:+) }'
PROMPT+='${GIT_PROMPT_KIT_DELETED_STAGED:+$GIT_PROMPT_KIT_DELETED_STAGED }'
PROMPT+='${GIT_PROMPT_KIT_MODIFIED_STAGED:+$GIT_PROMPT_KIT_MODIFIED_STAGED }'
Expand Down Expand Up @@ -200,7 +200,7 @@ PROMPT+='${GIT_PROMPT_KIT_BEHIND:+$GIT_PROMPT_KIT_BEHIND }'
PROMPT+='${GIT_PROMPT_KIT_AHEAD:+$GIT_PROMPT_KIT_AHEAD }'
PROMPT+='%F{#03343f}'
PROMPT+='${GIT_PROMPT_KIT_HEAD:+($GIT_PROMPT_KIT_HEAD}'
PROMPT+='${GIT_PROMPT_KIT_UPSTREAM:+$ GIT_PROMPT_KIT_UPSTREAM}'
PROMPT+='${GIT_PROMPT_KIT_REMOTE:+$ GIT_PROMPT_KIT_REMOTE}'
PROMPT+='%F{#03343f}'
PROMPT+='${GIT_PROMPT_KIT_HEAD:+) }'
PROMPT+='${GIT_PROMPT_KIT_TAG:+$GIT_PROMPT_KIT_TAG }'
Expand Down Expand Up @@ -291,7 +291,7 @@ PROMPT=
PROMPT+=$'\n%B'
PROMPT+='$GIT_PROMPT_KIT_CUSTOM '
PROMPT+='${GIT_PROMPT_KIT_HEAD:+on $GIT_PROMPT_KIT_HEAD }'
PROMPT+='${GIT_PROMPT_KIT_UPSTREAM:+$GIT_PROMPT_KIT_UPSTREAM }'
PROMPT+='${GIT_PROMPT_KIT_REMOTE:+$GIT_PROMPT_KIT_REMOTE }'
PROMPT+='%F{red}'
PROMPT+='${GIT_PROMPT_KIT_DIRTY:+[}'
PROMPT+='%f'
Expand Down
129 changes: 108 additions & 21 deletions git-prompt-kit.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ GIT_PROMPT_KIT_COLOR_FAILED=${GIT_PROMPT_KIT_COLOR_FAILED-88}
GIT_PROMPT_KIT_COLOR_HEAD=${GIT_PROMPT_KIT_COLOR_HEAD-140}
GIT_PROMPT_KIT_COLOR_HOST=${GIT_PROMPT_KIT_COLOR_HOST-109}
GIT_PROMPT_KIT_COLOR_INACTIVE=${GIT_PROMPT_KIT_COLOR_INACTIVE-247}
GIT_PROMPT_KIT_COLOR_PUSH_REMOTE=${GIT_PROMPT_KIT_COLOR_PUSH_REMOTE-111}
GIT_PROMPT_KIT_COLOR_REMOTE=${GIT_PROMPT_KIT_COLOR_REMOTE-216}
GIT_PROMPT_KIT_COLOR_SKIP_WORKTREE=${GIT_PROMPT_KIT_COLOR_SKIP_WORKTREE-81}
GIT_PROMPT_KIT_COLOR_STAGED=${GIT_PROMPT_KIT_COLOR_STAGED-120}
Expand All @@ -36,10 +37,14 @@ typeset -g GIT_PROMPT_KIT_GITSTATUSD_INSTANCE_NAME=${GIT_PROMPT_KIT_GITSTATUSD_I

# Content options
GIT_PROMPT_KIT_CUSTOM_CONTENT=${GIT_PROMPT_KIT_CUSTOM_CONTENT-%2~} # see http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Shell-state
GIT_PROMPT_KIT_DEFAULT_PUSH_REMOTE_NAME=${GIT_PROMPT_KIT_DEFAULT_PUSH_REMOTE_NAME-upstream}
GIT_PROMPT_KIT_DEFAULT_REMOTE_NAME=${GIT_PROMPT_KIT_DEFAULT_REMOTE_NAME-origin}
#
! [[ -v GIT_PROMPT_KIT_HIDDEN_HOSTS ]] && typeset -a GIT_PROMPT_KIT_HIDDEN_HOSTS=()
! [[ -v GIT_PROMPT_KIT_HIDDEN_USERS ]] && typeset -a GIT_PROMPT_KIT_HIDDEN_USERS=()
#
GIT_PROMPT_KIT_LOCAL=${GIT_PROMPT_KIT_LOCAL-local}
#
typeset -gi GIT_PROMPT_KIT_SHOW_EXTENDED_STATUS=${GIT_PROMPT_KIT_SHOW_EXTENDED_STATUS:-1}

# Layout options
Expand All @@ -61,6 +66,8 @@ GIT_PROMPT_KIT_SYMBOL_HOST=${GIT_PROMPT_KIT_SYMBOL_HOST-@}
GIT_PROMPT_KIT_SYMBOL_MODIFIED=${GIT_PROMPT_KIT_SYMBOL_MODIFIED-_M}
GIT_PROMPT_KIT_SYMBOL_MODIFIED_STAGED=${GIT_PROMPT_KIT_SYMBOL_MODIFIED_STAGED-M_}
GIT_PROMPT_KIT_SYMBOL_NEW=${GIT_PROMPT_KIT_SYMBOL_NEW-A_}
GIT_PROMPT_KIT_SYMBOL_PUSH=${GIT_PROMPT_KIT_SYMBOL_PUSH-@{push}}
GIT_PROMPT_KIT_SYMBOL_REMOTE=${GIT_PROMPT_KIT_SYMBOL_REMOTE-@{u}}
GIT_PROMPT_KIT_SYMBOL_SKIP_WORKTREE=${GIT_PROMPT_KIT_SYMBOL_SKIP_WORKTREE-⤳ }
GIT_PROMPT_KIT_SYMBOL_STASH=${GIT_PROMPT_KIT_SYMBOL_STASH-⇲}
GIT_PROMPT_KIT_SYMBOL_TAG=${GIT_PROMPT_KIT_SYMBOL_TAG-@}
Expand All @@ -71,17 +78,14 @@ GIT_PROMPT_KIT_SYMBOL_UNTRACKED=${GIT_PROMPT_KIT_SYMBOL_UNTRACKED-??}

typeset -ga _git_prompt_kit_configs
_git_prompt_kit_configs=(
GIT_PROMPT_KIT_HIDE_INACTIVE_AHEAD_BEHIND
GIT_PROMPT_KIT_HIDE_INACTIVE_EXTENDED_STATUS
GIT_PROMPT_KIT_HIDE_TOOL_NAMES
GIT_PROMPT_KIT_SHOW_INACTIVE_STATUS
GIT_PROMPT_KIT_COLOR_ACTION
GIT_PROMPT_KIT_COLOR_ASSUME_UNCHANGED
GIT_PROMPT_KIT_COLOR_CUSTOM
GIT_PROMPT_KIT_COLOR_FAILED
GIT_PROMPT_KIT_COLOR_HEAD
GIT_PROMPT_KIT_COLOR_HOST
GIT_PROMPT_KIT_COLOR_INACTIVE
GIT_PROMPT_KIT_COLOR_PUSH_REMOTE
GIT_PROMPT_KIT_COLOR_REMOTE
GIT_PROMPT_KIT_COLOR_SKIP_WORKTREE
GIT_PROMPT_KIT_COLOR_STAGED
Expand All @@ -91,13 +95,18 @@ _git_prompt_kit_configs=(
GIT_PROMPT_KIT_COLOR_UNSTAGED
GIT_PROMPT_KIT_COLOR_USER
GIT_PROMPT_KIT_CUSTOM_CONTENT
GIT_PROMPT_KIT_DEFAULT_PUSH_REMOTE_NAME
GIT_PROMPT_KIT_DEFAULT_REMOTE_NAME
GIT_PROMPT_KIT_HIDDEN_HOSTS
GIT_PROMPT_KIT_HIDDEN_USERS
GIT_PROMPT_KIT_LOCAL
GIT_PROMPT_KIT_SHOW_EXTENDED_STATUS
GIT_PROMPT_KIT_HIDE_INACTIVE_AHEAD_BEHIND
GIT_PROMPT_KIT_HIDE_INACTIVE_EXTENDED_STATUS
GIT_PROMPT_KIT_HIDE_TOOL_NAMES
GIT_PROMPT_KIT_LINEBREAK_AFTER_GIT_REF
GIT_PROMPT_KIT_LOCAL
GIT_PROMPT_KIT_NO_LINEBREAK_BEFORE_GIT_REF
GIT_PROMPT_KIT_SHOW_EXTENDED_STATUS
GIT_PROMPT_KIT_SHOW_INACTIVE_STATUS
GIT_PROMPT_KIT_SYMBOL_AHEAD
GIT_PROMPT_KIT_SYMBOL_ASSUME_UNCHANGED
GIT_PROMPT_KIT_SYMBOL_BEHIND
Expand Down Expand Up @@ -127,6 +136,7 @@ _git_prompt_kit_colors=(
GIT_PROMPT_KIT_COLOR_HEAD
GIT_PROMPT_KIT_COLOR_HOST
GIT_PROMPT_KIT_COLOR_INACTIVE
GIT_PROMPT_KIT_COLOR_PUSH_REMOTE
GIT_PROMPT_KIT_COLOR_REMOTE
GIT_PROMPT_KIT_COLOR_SKIP_WORKTREE
GIT_PROMPT_KIT_COLOR_STAGED
Expand Down Expand Up @@ -178,14 +188,17 @@ _git_prompt_kit_update_git() {
typeset -g GIT_PROMPT_KIT_MODIFIED=
typeset -g GIT_PROMPT_KIT_MODIFIED_STAGED=
typeset -g GIT_PROMPT_KIT_NEW=
typeset -g GIT_PROMPT_KIT_PUSH=
typeset -g GIT_PROMPT_KIT_PUSH_AHEAD=
typeset -g GIT_PROMPT_KIT_PUSH_BEHIND=
typeset -g GIT_PROMPT_KIT_REF=
typeset -g GIT_PROMPT_KIT_REMOTE=
typeset -g GIT_PROMPT_KIT_SKIP_WORKTREE=
typeset -g GIT_PROMPT_KIT_STASHES=
typeset -g GIT_PROMPT_KIT_STATUS=
typeset -g GIT_PROMPT_KIT_STATUS_EXTENDED=
typeset -g GIT_PROMPT_KIT_TAG=
typeset -g GIT_PROMPT_KIT_UNTRACKED=
typeset -g GIT_PROMPT_KIT_UPSTREAM=

(( GIT_PROMPT_KIT_LINEBREAK_AFTER_GIT_REF )) || typeset -g GIT_PROMPT_KIT_LINEBREAK_AFTER_GIT_REF=
(( GIT_PROMPT_KIT_NO_LINEBREAK_BEFORE_GIT_REF )) || typeset -g GIT_PROMPT_KIT_NO_LINEBREAK_BEFORE_GIT_REF=
Expand All @@ -199,16 +212,37 @@ _git_prompt_kit_update_git() {
local ref_status=
local tree_status=
local -i added_staged_count
local -i not_default_remote
local -i show_ahead
local -i show_behind
local -i show_push_ahead
local -i show_push_behind
local -i show_push_remote
local -i show_remote
local -i show_remote_branch
local -i unstaged_count

(( added_staged_count = VCS_STATUS_NUM_STAGED - VCS_STATUS_NUM_STAGED_NEW - VCS_STATUS_NUM_STAGED_DELETED ))
(( unstaged_count = VCS_STATUS_NUM_UNSTAGED - VCS_STATUS_NUM_UNSTAGED_DELETED ))

if [[ $VCS_STATUS_REMOTE_NAME != $GIT_PROMPT_KIT_DEFAULT_REMOTE_NAME ]]; then
not_default_remote=1
if [[ -n $VCS_STATUS_REMOTE_NAME ]] && [[ $VCS_STATUS_REMOTE_NAME != $GIT_PROMPT_KIT_DEFAULT_REMOTE_NAME ]]; then
show_remote=1
fi

if [[ -n $VCS_STATUS_PUSH_REMOTE_NAME ]] \
&& [[ $VCS_STATUS_PUSH_REMOTE_NAME != $VCS_STATUS_REMOTE_NAME ]] \
&& [[ $VCS_STATUS_PUSH_REMOTE_NAME != $GIT_PROMPT_KIT_DEFAULT_PUSH_REMOTE_NAME ]]; then
show_push_remote=1
fi

if [[ $VCS_STATUS_LOCAL_BRANCH != $VCS_STATUS_REMOTE_BRANCH ]]; then
show_remote_branch=1
fi
(( show_ahead = ! GIT_PROMPT_KIT_HIDE_INACTIVE_AHEAD_BEHIND || VCS_STATUS_COMMITS_AHEAD ))
(( show_behind = ! GIT_PROMPT_KIT_HIDE_INACTIVE_AHEAD_BEHIND || VCS_STATUS_COMMITS_BEHIND ))
# show_push_remote_branch would go here
(( show_push_ahead = ! GIT_PROMPT_KIT_HIDE_INACTIVE_AHEAD_BEHIND || VCS_STATUS_COMMITS_AHEAD ))
(( show_push_behind = ! GIT_PROMPT_KIT_HIDE_INACTIVE_AHEAD_BEHIND || VCS_STATUS_COMMITS_BEHIND ))

# Git tree status: stashes

if (( ! GIT_PROMPT_KIT_HIDE_INACTIVE_EXTENDED_STATUS || VCS_STATUS_STASHES )); then
Expand Down Expand Up @@ -308,30 +342,68 @@ _git_prompt_kit_update_git() {
if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then
GIT_PROMPT_KIT_HEAD+="$GIT_PROMPT_KIT_SYMBOL_BRANCH$VCS_STATUS_LOCAL_BRANCH%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"

if [[ -z $VCS_STATUS_REMOTE_BRANCH ]]; then
GIT_PROMPT_KIT_UPSTREAM+="%F{$GIT_PROMPT_KIT_COLOR_REMOTE}$GIT_PROMPT_KIT_LOCAL%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"
else
if (( not_default_remote )); then
GIT_PROMPT_KIT_UPSTREAM+="%F{$GIT_PROMPT_KIT_COLOR_REMOTE}$VCS_STATUS_REMOTE_NAME/%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"
if [[ -n $VCS_STATUS_REMOTE_BRANCH ]]; then
if [[ -n $VCS_STATUS_PUSH_REMOTE_NAME ]] && (( show_remote || show_remote_branch || show_ahead || show_behind )); then
if (( show_remote || show_remote_branch || VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then
GIT_PROMPT_KIT_REMOTE+="%F{$GIT_PROMPT_KIT_COLOR_REMOTE}"
fi

GIT_PROMPT_KIT_REMOTE+="$GIT_PROMPT_KIT_SYMBOL_REMOTE%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"
fi

if (( show_remote )); then
GIT_PROMPT_KIT_REMOTE+="%F{$GIT_PROMPT_KIT_COLOR_REMOTE}$VCS_STATUS_REMOTE_NAME/$VCS_STATUS_REMOTE_BRANCH%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"
fi

if (( not_default_remote )) || [[ $VCS_STATUS_LOCAL_BRANCH != $VCS_STATUS_REMOTE_BRANCH ]]; then
GIT_PROMPT_KIT_UPSTREAM+="%F{$GIT_PROMPT_KIT_COLOR_REMOTE}${GIT_PROMPT_KIT_SYMBOL_BRANCH}${VCS_STATUS_REMOTE_BRANCH}%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"
if (( show_remote_branch )); then
GIT_PROMPT_KIT_REMOTE+="%F{$GIT_PROMPT_KIT_COLOR_REMOTE}${VCS_STATUS_REMOTE_BRANCH}%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"
fi

if (( ! GIT_PROMPT_KIT_HIDE_INACTIVE_AHEAD_BEHIND || VCS_STATUS_COMMITS_AHEAD )); then
if (( show_ahead )); then
(( VCS_STATUS_COMMITS_AHEAD )) && GIT_PROMPT_KIT_AHEAD+="%F{$GIT_PROMPT_KIT_COLOR_REMOTE}"
GIT_PROMPT_KIT_AHEAD+="$GIT_PROMPT_KIT_SYMBOL_AHEAD"
(( VCS_STATUS_COMMITS_AHEAD )) && GIT_PROMPT_KIT_AHEAD+="$VCS_STATUS_COMMITS_AHEAD"
GIT_PROMPT_KIT_AHEAD+="%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"
fi

if (( ! GIT_PROMPT_KIT_HIDE_INACTIVE_AHEAD_BEHIND || VCS_STATUS_COMMITS_BEHIND )); then
if (( show_behind )); then
(( VCS_STATUS_COMMITS_BEHIND )) && GIT_PROMPT_KIT_BEHIND+="%F{$GIT_PROMPT_KIT_COLOR_REMOTE}"
GIT_PROMPT_KIT_BEHIND+="$GIT_PROMPT_KIT_SYMBOL_BEHIND"
(( VCS_STATUS_COMMITS_BEHIND )) && GIT_PROMPT_KIT_BEHIND+="$VCS_STATUS_COMMITS_BEHIND"
GIT_PROMPT_KIT_BEHIND+="%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"
fi
else
GIT_PROMPT_KIT_REMOTE+="%F{$GIT_PROMPT_KIT_COLOR_REMOTE}$GIT_PROMPT_KIT_LOCAL%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"
fi

if [[ -n $VCS_STATUS_PUSH_REMOTE_NAME ]]; then
if (( show_push_remote || show_push_ahead || show_push_behind )); then # would need || show_push_remote
if (( show_push_remote || VCS_STATUS_PUSH_COMMITS_AHEAD || VCS_STATUS_PUSH_COMMITS_BEHIND )); then # would need || show_push_remote
GIT_PROMPT_KIT_PUSH+="%F{$GIT_PROMPT_KIT_COLOR_PUSH_REMOTE}"
fi

GIT_PROMPT_KIT_PUSH+="$GIT_PROMPT_KIT_SYMBOL_PUSH%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"
fi

if (( show_push_remote )); then
GIT_PROMPT_KIT_PUSH+="%F{$GIT_PROMPT_KIT_COLOR_PUSH_REMOTE}$VCS_STATUS_PUSH_REMOTE_NAME%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"
fi

# push remote branch would go here

if (( show_push_ahead )); then
(( VCS_STATUS_PUSH_COMMITS_AHEAD )) && GIT_PROMPT_KIT_PUSH_AHEAD+="%F{$GIT_PROMPT_KIT_COLOR_PUSH_REMOTE}"
GIT_PROMPT_KIT_PUSH_AHEAD+="$GIT_PROMPT_KIT_SYMBOL_AHEAD"
(( VCS_STATUS_PUSH_COMMITS_AHEAD )) && GIT_PROMPT_KIT_PUSH_AHEAD+="$VCS_STATUS_PUSH_COMMITS_AHEAD"
GIT_PROMPT_KIT_AHEAD+="%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"
fi

if (( show_push_behind )); then
(( VCS_STATUS_PUSH_COMMITS_BEHIND )) && GIT_PROMPT_KIT_PUSH_BEHIND+="%F{$GIT_PROMPT_KIT_COLOR_PUSH_REMOTE}"
GIT_PROMPT_KIT_PUSH_BEHIND+="$GIT_PROMPT_KIT_SYMBOL_BEHIND"
(( VCS_STATUS_PUSH_COMMITS_BEHIND )) && GIT_PROMPT_KIT_PUSH_BEHIND+="$VCS_STATUS_PUSH_COMMITS_BEHIND"
GIT_PROMPT_KIT_PUSH_BEHIND+="%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"
fi
fi
else
GIT_PROMPT_KIT_HEAD+="$GIT_PROMPT_KIT_SYMBOL_COMMIT${VCS_STATUS_COMMIT[1,8]}%F{$GIT_PROMPT_KIT_COLOR_INACTIVE}"
Expand Down Expand Up @@ -397,9 +469,9 @@ _git_prompt_kit_update_git() {

GIT_PROMPT_KIT_REF+="${GIT_PROMPT_KIT_HEAD:+$GIT_PROMPT_KIT_HEAD}"

if [[ -n $GIT_PROMPT_KIT_UPSTREAM ]]; then
if [[ -n $GIT_PROMPT_KIT_REMOTE ]]; then
GIT_PROMPT_KIT_REF+=${GIT_PROMPT_KIT_REF:+ }
GIT_PROMPT_KIT_REF+=$GIT_PROMPT_KIT_UPSTREAM
GIT_PROMPT_KIT_REF+=$GIT_PROMPT_KIT_REMOTE
fi

if [[ -n $GIT_PROMPT_KIT_AHEAD ]]; then
Expand All @@ -412,6 +484,21 @@ _git_prompt_kit_update_git() {
GIT_PROMPT_KIT_REF+=$GIT_PROMPT_KIT_BEHIND
fi

if [[ -n $GIT_PROMPT_KIT_PUSH ]]; then
GIT_PROMPT_KIT_REF+=${GIT_PROMPT_KIT_REF:+ }
GIT_PROMPT_KIT_REF+=$GIT_PROMPT_KIT_PUSH
fi

if [[ -n $GIT_PROMPT_KIT_PUSH_AHEAD ]]; then
GIT_PROMPT_KIT_REF+=${GIT_PROMPT_KIT_REF:+ }
GIT_PROMPT_KIT_REF+=$GIT_PROMPT_KIT_PUSH_AHEAD
fi

if [[ -n $GIT_PROMPT_KIT_PUSH_BEHIND ]]; then
GIT_PROMPT_KIT_REF+=${GIT_PROMPT_KIT_REF:+ }
GIT_PROMPT_KIT_REF+=$GIT_PROMPT_KIT_PUSH_BEHIND
fi

if [[ -n $GIT_PROMPT_KIT_TAG ]]; then
GIT_PROMPT_KIT_REF+=${GIT_PROMPT_KIT_REF:+ }
GIT_PROMPT_KIT_REF+=$GIT_PROMPT_KIT_TAG
Expand Down

0 comments on commit 2d114d3

Please sign in to comment.