mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-11-22 12:20:07 +00:00
pull upstream changes from gitstatus
This commit is contained in:
parent
e6af43ae5a
commit
0acd14c92d
5 changed files with 55 additions and 17 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -30,6 +30,10 @@
|
||||||
# VCS_STATUS_COMMIT=6e86ec135bf77875e222463cbac8ef72a7e8d823
|
# VCS_STATUS_COMMIT=6e86ec135bf77875e222463cbac8ef72a7e8d823
|
||||||
# VCS_STATUS_COMMITS_AHEAD=0
|
# VCS_STATUS_COMMITS_AHEAD=0
|
||||||
# VCS_STATUS_COMMITS_BEHIND=0
|
# VCS_STATUS_COMMITS_BEHIND=0
|
||||||
|
# VCS_STATUS_INDEX_SIZE=42
|
||||||
|
# VCS_STATUS_NUM_STAGED=0
|
||||||
|
# VCS_STATUS_NUM_UNSTAGED=2
|
||||||
|
# VCS_STATUS_NUM_UNTRACKED=3
|
||||||
# VCS_STATUS_HAS_STAGED=0
|
# VCS_STATUS_HAS_STAGED=0
|
||||||
# VCS_STATUS_HAS_UNSTAGED=1
|
# VCS_STATUS_HAS_UNSTAGED=1
|
||||||
# VCS_STATUS_HAS_UNTRACKED=1
|
# VCS_STATUS_HAS_UNTRACKED=1
|
||||||
|
@ -146,6 +150,7 @@ function _gitstatus_process_response() {
|
||||||
local -F timeout=$2
|
local -F timeout=$2
|
||||||
local req_id=$3
|
local req_id=$3
|
||||||
local resp_fd_var=_GITSTATUS_RESP_FD_${name}
|
local resp_fd_var=_GITSTATUS_RESP_FD_${name}
|
||||||
|
local -i dirty_max_index_size=_GITSTATUS_DIRTY_MAX_INDEX_SIZE_${name}
|
||||||
|
|
||||||
typeset -g VCS_STATUS_RESULT
|
typeset -g VCS_STATUS_RESULT
|
||||||
(( timeout >= 0 )) && local -a t=(-t $timeout) || local -a t=()
|
(( timeout >= 0 )) && local -a t=(-t $timeout) || local -a t=()
|
||||||
|
@ -167,13 +172,22 @@ function _gitstatus_process_response() {
|
||||||
typeset -g VCS_STATUS_REMOTE_NAME="${resp[7]}"
|
typeset -g VCS_STATUS_REMOTE_NAME="${resp[7]}"
|
||||||
typeset -g VCS_STATUS_REMOTE_URL="${resp[8]}"
|
typeset -g VCS_STATUS_REMOTE_URL="${resp[8]}"
|
||||||
typeset -g VCS_STATUS_ACTION="${resp[9]}"
|
typeset -g VCS_STATUS_ACTION="${resp[9]}"
|
||||||
typeset -gi VCS_STATUS_HAS_STAGED="${resp[10]}"
|
typeset -gi VCS_STATUS_INDEX_SIZE="${resp[10]}"
|
||||||
typeset -gi VCS_STATUS_HAS_UNSTAGED="${resp[11]}"
|
typeset -gi VCS_STATUS_NUM_STAGED="${resp[11]}"
|
||||||
typeset -gi VCS_STATUS_HAS_UNTRACKED="${resp[12]}"
|
typeset -gi VCS_STATUS_NUM_UNSTAGED="${resp[12]}"
|
||||||
typeset -gi VCS_STATUS_COMMITS_AHEAD="${resp[13]}"
|
typeset -gi VCS_STATUS_NUM_UNTRACKED="${resp[13]}"
|
||||||
typeset -gi VCS_STATUS_COMMITS_BEHIND="${resp[14]}"
|
typeset -gi VCS_STATUS_COMMITS_AHEAD="${resp[14]}"
|
||||||
typeset -gi VCS_STATUS_STASHES="${resp[15]}"
|
typeset -gi VCS_STATUS_COMMITS_BEHIND="${resp[15]}"
|
||||||
typeset -g VCS_STATUS_TAG="${resp[16]}"
|
typeset -gi VCS_STATUS_STASHES="${resp[16]}"
|
||||||
|
typeset -g VCS_STATUS_TAG="${resp[17]}"
|
||||||
|
typeset -gi VCS_STATUS_HAS_STAGED=$((VCS_STATUS_NUM_STAGED > 0))
|
||||||
|
if (( dirty_max_index_size >= 0 && VCS_STATUS_INDEX_SIZE > dirty_max_index_size )); then
|
||||||
|
typeset -gi VCS_STATUS_HAS_UNSTAGED=-1
|
||||||
|
typeset -gi VCS_STATUS_HAS_UNTRACKED=-1
|
||||||
|
else
|
||||||
|
typeset -gi VCS_STATUS_HAS_UNSTAGED=$((VCS_STATUS_NUM_UNSTAGED > 0))
|
||||||
|
typeset -gi VCS_STATUS_HAS_UNTRACKED=$((VCS_STATUS_NUM_UNTRACKED > 0))
|
||||||
|
fi
|
||||||
} || {
|
} || {
|
||||||
(( ours )) && VCS_STATUS_RESULT=norepo-sync || VCS_STATUS_RESULT=norepo-async
|
(( ours )) && VCS_STATUS_RESULT=norepo-sync || VCS_STATUS_RESULT=norepo-async
|
||||||
unset VCS_STATUS_WORKDIR
|
unset VCS_STATUS_WORKDIR
|
||||||
|
@ -183,6 +197,10 @@ function _gitstatus_process_response() {
|
||||||
unset VCS_STATUS_REMOTE_NAME
|
unset VCS_STATUS_REMOTE_NAME
|
||||||
unset VCS_STATUS_REMOTE_URL
|
unset VCS_STATUS_REMOTE_URL
|
||||||
unset VCS_STATUS_ACTION
|
unset VCS_STATUS_ACTION
|
||||||
|
unset VCS_STATUS_INDEX_SIZE
|
||||||
|
unset VCS_STATUS_NUM_STAGED
|
||||||
|
unset VCS_STATUS_NUM_UNSTAGED
|
||||||
|
unset VCS_STATUS_NUM_UNTRACKED
|
||||||
unset VCS_STATUS_HAS_STAGED
|
unset VCS_STATUS_HAS_STAGED
|
||||||
unset VCS_STATUS_HAS_UNSTAGED
|
unset VCS_STATUS_HAS_UNSTAGED
|
||||||
unset VCS_STATUS_HAS_UNTRACKED
|
unset VCS_STATUS_HAS_UNTRACKED
|
||||||
|
@ -201,20 +219,36 @@ function _gitstatus_process_response() {
|
||||||
#
|
#
|
||||||
# -t FLOAT Fail the self-check on initialization if not getting a response from gitstatusd for
|
# -t FLOAT Fail the self-check on initialization if not getting a response from gitstatusd for
|
||||||
# this this many seconds. Defaults to 5.
|
# this this many seconds. Defaults to 5.
|
||||||
# -m INT Report -1 unstaged and untracked if there are more than this many files in the index.
|
#
|
||||||
# Negative value means infinity. Defaults to -1.
|
# -s INT Report at most this many staged changes; negative value means infinity.
|
||||||
|
# Defaults to 1.
|
||||||
|
#
|
||||||
|
# -u INT Report at most this many unstaged changes; negative value means infinity.
|
||||||
|
# Defaults to 1.
|
||||||
|
#
|
||||||
|
# -d INT Report at most this many untracked files; negative value means infinity.
|
||||||
|
# Defaults to 1.
|
||||||
|
#
|
||||||
|
# -m INT If a repo has more files in its index than this, override -u and -d (but not -s)
|
||||||
|
# with zeros. Negative value means infinity. Defaults to -1.
|
||||||
function gitstatus_start() {
|
function gitstatus_start() {
|
||||||
emulate -L zsh
|
emulate -L zsh
|
||||||
setopt err_return no_unset no_bg_nice
|
setopt err_return no_unset no_bg_nice
|
||||||
|
|
||||||
local opt
|
local opt
|
||||||
local -F timeout=5
|
local -F timeout=5
|
||||||
local -i max_dirty=-1
|
local -i max_num_staged=1
|
||||||
|
local -i max_num_unstaged=1
|
||||||
|
local -i max_num_untracked=1
|
||||||
|
local -i dirty_max_index_size=-1
|
||||||
while true; do
|
while true; do
|
||||||
getopts "t:m:" opt || break
|
getopts "t:s:u:d:m:" opt || break
|
||||||
case $opt in
|
case $opt in
|
||||||
t) timeout=$OPTARG;;
|
t) timeout=$OPTARG;;
|
||||||
m) max_dirty=$OPTARG;;
|
s) max_num_staged=$OPTARG;;
|
||||||
|
u) max_num_unstaged=$OPTARG;;
|
||||||
|
d) max_num_untracked=$OPTARG;;
|
||||||
|
m) dirty_max_index_size=$OPTARG;;
|
||||||
?) return 1;;
|
?) return 1;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
@ -277,11 +311,14 @@ function gitstatus_start() {
|
||||||
|
|
||||||
# We use `zsh -c` instead of plain {} or () to work around bugs in zplug. It hangs on startup.
|
# We use `zsh -c` instead of plain {} or () to work around bugs in zplug. It hangs on startup.
|
||||||
zsh -dfxc "
|
zsh -dfxc "
|
||||||
${(q)daemon} \
|
${(q)daemon} \
|
||||||
--lock-fd=3 \
|
--lock-fd=3 \
|
||||||
--parent-pid=$$ \
|
--parent-pid=$$ \
|
||||||
--num-threads=$threads \
|
--num-threads=$threads \
|
||||||
--dirty-max-index-size=$max_dirty
|
--max-num-staged=$max_num_staged \
|
||||||
|
--max-num-unstaged=$max_num_unstaged \
|
||||||
|
--max-num-untracked=$max_num_untracked \
|
||||||
|
--dirty-max-index-size=$dirty_max_index_size
|
||||||
echo -nE $'bye\x1f0\x1e'
|
echo -nE $'bye\x1f0\x1e'
|
||||||
" <&$req_fd >&$resp_fd 2>$log_file 3<$lock_file &!
|
" <&$req_fd >&$resp_fd 2>$log_file 3<$lock_file &!
|
||||||
|
|
||||||
|
@ -317,6 +354,7 @@ function gitstatus_start() {
|
||||||
typeset -gi _GITSTATUS_RESP_FD_${name}=$resp_fd
|
typeset -gi _GITSTATUS_RESP_FD_${name}=$resp_fd
|
||||||
typeset -gi _GITSTATUS_LOCK_FD_${name}=$lock_fd
|
typeset -gi _GITSTATUS_LOCK_FD_${name}=$lock_fd
|
||||||
typeset -gi _GITSTATUS_CLIENT_PID_${name}=$$
|
typeset -gi _GITSTATUS_CLIENT_PID_${name}=$$
|
||||||
|
typeset -gi _GITSTATUS_DIRTY_MAX_INDEX_SIZE_${name}=$dirty_max_index_size
|
||||||
unset -f gitstatus_start_impl
|
unset -f gitstatus_start_impl
|
||||||
} || {
|
} || {
|
||||||
unsetopt err_return
|
unsetopt err_return
|
||||||
|
|
Loading…
Reference in a new issue