[Fix #42] Count dirty files in Git repositories
This commit is contained in:
parent
17a4505a0a
commit
514aaa014b
|
@ -145,7 +145,8 @@ function git-info() {
|
||||||
local deleted=0
|
local deleted=0
|
||||||
local deleted_format
|
local deleted_format
|
||||||
local deleted_formatted
|
local deleted_formatted
|
||||||
local dirty
|
local dirty=0
|
||||||
|
local dirty_format
|
||||||
local dirty_formatted
|
local dirty_formatted
|
||||||
local line_number=0
|
local line_number=0
|
||||||
local modified=0
|
local modified=0
|
||||||
|
@ -277,21 +278,14 @@ function git-info() {
|
||||||
branch="$match[1]"
|
branch="$match[1]"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# Format dirty.
|
# Count added, deleted, modified, renamed, unmerged, untracked, dirty.
|
||||||
if [[ -z "$dirty" ]]; then
|
|
||||||
zstyle -s ':omz:plugin:git:prompt' dirty 'dirty_formatted'
|
|
||||||
if [[ -z "$dirty_formatted" ]]; then
|
|
||||||
unset clean_formatted
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Count: added/deleted/modified/renamed/unmerged/untracked
|
|
||||||
[[ "$line" == (((A|M|D|T) )|(AD|AM|AT|MM))\ * ]] && (( added++ ))
|
[[ "$line" == (((A|M|D|T) )|(AD|AM|AT|MM))\ * ]] && (( added++ ))
|
||||||
[[ "$line" == ( D|AD)\ * ]] && (( deleted++ ))
|
[[ "$line" == ( D|AD)\ * ]] && (( deleted++ ))
|
||||||
[[ "$line" == (( (M|T))|(AM|AT|MM))\ * ]] && (( modified++ ))
|
[[ "$line" == (( (M|T))|(AM|AT|MM))\ * ]] && (( modified++ ))
|
||||||
[[ "$line" == R\ \ * ]] && (( renamed++ ))
|
[[ "$line" == R\ \ * ]] && (( renamed++ ))
|
||||||
[[ "$line" == UU\ * ]] && (( unmerged++ ))
|
[[ "$line" == UU\ * ]] && (( unmerged++ ))
|
||||||
[[ "$line" == \?\?\ * ]] && (( untracked++ ))
|
[[ "$line" == \?\?\ * ]] && (( untracked++ ))
|
||||||
|
(( dirty++ ))
|
||||||
fi
|
fi
|
||||||
done < <("${(z)status_cmd}" 2>/dev/null)
|
done < <("${(z)status_cmd}" 2>/dev/null)
|
||||||
|
|
||||||
|
@ -359,6 +353,13 @@ function git-info() {
|
||||||
zformat -f untracked_formatted "$untracked_format" "u:$untracked"
|
zformat -f untracked_formatted "$untracked_format" "u:$untracked"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Format dirty.
|
||||||
|
if (( $dirty > 0 )); then
|
||||||
|
zstyle -s ':omz:plugin:git:prompt' dirty 'dirty_format'
|
||||||
|
zformat -f dirty_formatted "$dirty_format" "D:$dirty"
|
||||||
|
unset clean_formatted
|
||||||
|
fi
|
||||||
|
|
||||||
# Format prompts.
|
# Format prompts.
|
||||||
zstyle -s ':omz:plugin:git:prompt' prompt 'prompt_format'
|
zstyle -s ':omz:plugin:git:prompt' prompt 'prompt_format'
|
||||||
zstyle -s ':omz:plugin:git:prompt' rprompt 'rprompt_format'
|
zstyle -s ':omz:plugin:git:prompt' rprompt 'rprompt_format'
|
||||||
|
|
|
@ -29,8 +29,8 @@ zstyle ':omz:plugin:git:prompt' commit 'commit:%c'
|
||||||
# %d - Indicator to notify of deleted files.
|
# %d - Indicator to notify of deleted files.
|
||||||
zstyle ':omz:plugin:git:prompt' deleted 'deleted:%d'
|
zstyle ':omz:plugin:git:prompt' deleted 'deleted:%d'
|
||||||
|
|
||||||
# %D - Indicator to notify of dirty branch.
|
# %D - Indicator to notify of dirty files.
|
||||||
zstyle ':omz:plugin:git:prompt' dirty 'dirty'
|
zstyle ':omz:plugin:git:prompt' dirty 'dirty:%D'
|
||||||
|
|
||||||
# %m - Indicator to notify of modified files.
|
# %m - Indicator to notify of modified files.
|
||||||
zstyle ':omz:plugin:git:prompt' modified 'modified:%m'
|
zstyle ':omz:plugin:git:prompt' modified 'modified:%m'
|
||||||
|
|
Loading…
Reference in a new issue