Correctly set VCS dirty status on first invocation.

The precmd hook seems to not get called on first invocation, and gets
called recursively for every subsequent invocation.
This commit is contained in:
Martin Pelikan 2015-07-06 20:56:02 -07:00
parent 558d137bfa
commit 5a9695dcd4
1 changed files with 3 additions and 9 deletions

View File

@ -221,7 +221,8 @@ zstyle ':vcs_info:*' actionformats " %b %F{red}| %a%f"
zstyle ':vcs_info:*' stagedstr " %F{$VCS_FOREGROUND_COLOR}$VCS_STAGED_ICON%f" zstyle ':vcs_info:*' stagedstr " %F{$VCS_FOREGROUND_COLOR}$VCS_STAGED_ICON%f"
zstyle ':vcs_info:*' unstagedstr " %F{$VCS_FOREGROUND_COLOR}$VCS_UNSTAGED_ICON%f" zstyle ':vcs_info:*' unstagedstr " %F{$VCS_FOREGROUND_COLOR}$VCS_UNSTAGED_ICON%f"
zstyle ':vcs_info:git*+set-message:*' hooks git-untracked git-aheadbehind git-stash git-remotebranch git-tagname zstyle ':vcs_info:git*+set-message:*' hooks vcs-detect-changes git-untracked git-aheadbehind git-stash git-remotebranch git-tagname
zstyle ':vcs_info:hg*+set-message:*' hooks vcs-detect-changes
# For Hg, only show the branch name # For Hg, only show the branch name
zstyle ':vcs_info:hg*:*' branchformat "$VCS_BRANCH_ICON%b" zstyle ':vcs_info:hg*:*' branchformat "$VCS_BRANCH_ICON%b"
@ -575,13 +576,6 @@ build_right_prompt() {
done done
} }
prompt_powerlevel9k_precmd() {
vcs_info
# Add a static hook to examine staged/unstaged changes.
vcs_info_hookadd set-message vcs-detect-changes
}
powerlevel9k_init() { powerlevel9k_init() {
setopt LOCAL_OPTIONS setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS unsetopt XTRACE KSH_ARRAYS
@ -593,7 +587,7 @@ powerlevel9k_init() {
# initialize VCS # initialize VCS
autoload -Uz add-zsh-hook autoload -Uz add-zsh-hook
add-zsh-hook precmd prompt_powerlevel9k_precmd add-zsh-hook precmd vcs_info
if [[ "$POWERLEVEL9K_PROMPT_ON_NEWLINE" == true ]]; then if [[ "$POWERLEVEL9K_PROMPT_ON_NEWLINE" == true ]]; then
PROMPT="╭─%{%f%b%k%}"'$(build_left_prompt)'" PROMPT="╭─%{%f%b%k%}"'$(build_left_prompt)'"