summaryrefslogtreecommitdiff
path: root/powerlevel9k.zsh-theme
diff options
context:
space:
mode:
authorBen Hilburn <bhilburn@gmail.com>2015-10-18 06:16:02 +0300
committerBen Hilburn <bhilburn@gmail.com>2015-10-18 06:16:02 +0300
commit01b158c020d4b7a611c8e6f9889c216524165373 (patch)
tree26113781be3e34a9a85fdc3b7bed4f6a7c57af84 /powerlevel9k.zsh-theme
parentd459ec098320c69997912d8791d9d4b0ec471514 (diff)
parent3bb8cd45933ee9e7ec043879dc5c4038bc0d399c (diff)
Merge branch 'vcs_cleanup' of https://github.com/dritter/powerlevel9k into dritter-vcs_cleanup
Diffstat (limited to 'powerlevel9k.zsh-theme')
-rwxr-xr-xpowerlevel9k.zsh-theme92
1 files changed, 45 insertions, 47 deletions
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index 54542a0c..28e65a25 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -344,51 +344,6 @@ set_default POWERLEVEL9K_VCS_FOREGROUND "$DEFAULT_COLOR"
set_default POWERLEVEL9K_VCS_DARK_FOREGROUND "$DEFAULT_COLOR_DARK"
################################################################
-# VCS Information Settings
-################################################################
-
-setopt prompt_subst
-autoload -Uz vcs_info
-
-VCS_WORKDIR_DIRTY=false
-VCS_CHANGESET_PREFIX=''
-if [[ "$POWERLEVEL9K_SHOW_CHANGESET" == true ]]; then
- # Default: Just display the first 12 characters of our changeset-ID.
- local VCS_CHANGESET_HASH_LENGTH=12
- if [[ -n "$POWERLEVEL9K_CHANGESET_HASH_LENGTH" ]]; then
- VCS_CHANGESET_HASH_LENGTH="$POWERLEVEL9K_CHANGESET_HASH_LENGTH"
- fi
-
- VCS_CHANGESET_PREFIX="%F{$POWERLEVEL9K_VCS_DARK_FOREGROUND}$(print_icon 'VCS_COMMIT_ICON')%0.$VCS_CHANGESET_HASH_LENGTH""i%f "
-fi
-
-zstyle ':vcs_info:*' enable git hg
-zstyle ':vcs_info:*' check-for-changes true
-
-VCS_DEFAULT_FORMAT="$VCS_CHANGESET_PREFIX%F{$POWERLEVEL9K_VCS_FOREGROUND}%b%c%u%m%f"
-zstyle ':vcs_info:git*:*' formats "%F{$POWERLEVEL9K_VCS_FOREGROUND}$(print_icon 'VCS_GIT_ICON')%f$VCS_DEFAULT_FORMAT"
-zstyle ':vcs_info:hg*:*' formats "%F{$POWERLEVEL9K_VCS_FOREGROUND}$(print_icon 'VCS_HG_ICON')%f$VCS_DEFAULT_FORMAT"
-
-zstyle ':vcs_info:*' actionformats "%b %F{red}| %a%f"
-
-zstyle ':vcs_info:*' stagedstr " %F{$POWERLEVEL9K_VCS_FOREGROUND}$(print_icon 'VCS_STAGED_ICON')%f"
-zstyle ':vcs_info:*' unstagedstr " %F{$POWERLEVEL9K_VCS_FOREGROUND}$(print_icon 'VCS_UNSTAGED_ICON')%f"
-
-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
-zstyle ':vcs_info:hg*:*' branchformat "$(print_icon 'VCS_BRANCH_ICON')%b"
-# The `get-revision` function must be turned on for dirty-check to work for Hg
-zstyle ':vcs_info:hg*:*' get-revision true
-zstyle ':vcs_info:hg*:*' get-bookmarks true
-zstyle ':vcs_info:hg*+gen-hg-bookmark-string:*' hooks hg-bookmarks
-
-if [[ "$POWERLEVEL9K_SHOW_CHANGESET" == true ]]; then
- zstyle ':vcs_info:*' get-revision true
-fi
-
-################################################################
# Prompt Segment Constructors
#
# Methodology behind user-defined variables overwriting colors:
@@ -502,6 +457,48 @@ right_prompt_segment() {
# The `vcs` Segment and VCS_INFO hooks / helper functions
################################################################
prompt_vcs() {
+ autoload -Uz vcs_info
+
+ VCS_WORKDIR_DIRTY=false
+ VCS_CHANGESET_PREFIX=''
+ if [[ "$POWERLEVEL9K_SHOW_CHANGESET" == true ]]; then
+ # Default: Just display the first 12 characters of our changeset-ID.
+ local VCS_CHANGESET_HASH_LENGTH=12
+ if [[ -n "$POWERLEVEL9K_CHANGESET_HASH_LENGTH" ]]; then
+ VCS_CHANGESET_HASH_LENGTH="$POWERLEVEL9K_CHANGESET_HASH_LENGTH"
+ fi
+
+ VCS_CHANGESET_PREFIX="%F{$POWERLEVEL9K_VCS_DARK_FOREGROUND}$(print_icon 'VCS_COMMIT_ICON')%0.$VCS_CHANGESET_HASH_LENGTH""i%f "
+ fi
+
+ zstyle ':vcs_info:*' enable git hg
+ zstyle ':vcs_info:*' check-for-changes true
+
+ VCS_DEFAULT_FORMAT="$VCS_CHANGESET_PREFIX%F{$POWERLEVEL9K_VCS_FOREGROUND}%b%c%u%m%f"
+ zstyle ':vcs_info:git*:*' formats "%F{$POWERLEVEL9K_VCS_FOREGROUND}$(print_icon 'VCS_GIT_ICON')%f$VCS_DEFAULT_FORMAT"
+ zstyle ':vcs_info:hg*:*' formats "%F{$POWERLEVEL9K_VCS_FOREGROUND}$(print_icon 'VCS_HG_ICON')%f$VCS_DEFAULT_FORMAT"
+
+ zstyle ':vcs_info:*' actionformats "%b %F{red}| %a%f"
+
+ zstyle ':vcs_info:*' stagedstr " %F{$POWERLEVEL9K_VCS_FOREGROUND}$(print_icon 'VCS_STAGED_ICON')%f"
+ zstyle ':vcs_info:*' unstagedstr " %F{$POWERLEVEL9K_VCS_FOREGROUND}$(print_icon 'VCS_UNSTAGED_ICON')%f"
+
+ 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
+ zstyle ':vcs_info:hg*:*' branchformat "$(print_icon 'VCS_BRANCH_ICON')%b"
+ # The `get-revision` function must be turned on for dirty-check to work for Hg
+ zstyle ':vcs_info:hg*:*' get-revision true
+ zstyle ':vcs_info:hg*:*' get-bookmarks true
+ zstyle ':vcs_info:hg*+gen-hg-bookmark-string:*' hooks hg-bookmarks
+
+ if [[ "$POWERLEVEL9K_SHOW_CHANGESET" == true ]]; then
+ zstyle ':vcs_info:*' get-revision true
+ fi
+
+ # Actually invoke vcs_info manually to gather all information.
+ vcs_info
local vcs_prompt="${vcs_info_msg_0_}"
if [[ -n "$vcs_prompt" ]]; then
@@ -963,6 +960,8 @@ powerlevel9k_init() {
print "You should set TERM=xterm-256colors in your ~/.zshrc"
fi
+ setopt prompt_subst
+
setopt LOCAL_OPTIONS
unsetopt XTRACE KSH_ARRAYS
setopt PROMPT_CR PROMPT_PERCENT PROMPT_SUBST MULTIBYTE
@@ -970,9 +969,8 @@ powerlevel9k_init() {
# initialize colors
autoload -U colors && colors
- # initialize VCS
+ # initialize hooks
autoload -Uz add-zsh-hook
- add-zsh-hook precmd vcs_info
# prepare prompts
add-zsh-hook precmd powerlevel9k_prepare_prompts