summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Hilburn <bhilburn@gmail.com>2015-04-02 02:52:30 +0300
committerBen Hilburn <bhilburn@gmail.com>2015-04-02 02:52:30 +0300
commit393e1c827b921f31cc0d74c9bf65076b69876708 (patch)
tree28c34046e30a901f87383c6ae97186461f114a00
parent5b0eeadabb75c03fb4e63442294d0b8d25897db5 (diff)
parent27a13b3f4823835d9ef2ec22dbb47e9007003676 (diff)
Merge pull request #18 from dritter/dritter/show_stash_count
Show stash count for git.
-rw-r--r--README.md12
-rw-r--r--powerlevel9k.zsh-theme13
2 files changed, 24 insertions, 1 deletions
diff --git a/README.md b/README.md
index 78c8946f..91a272da 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,7 @@ information in configurable prompt segments.
* branch / tag name
* current action status (rebasing, merging, etc.,)
* being behind / ahead of your remote by some number of commits
+ * number of stashes (git only)
* conditionally shows remote tracking branch if the name differs from local
* various working tree statuses (e.g., unstaged, staged, etc.,)
* Shows return-code of the last command if it is an error code
@@ -119,6 +120,17 @@ Example:
# just show the 6 first characters of changeset
POWERLEVEL9K_CHANGESET_HASH_LENGTH=6
+##### Symbols
+
+The `vcs` segment uses various symbols to tell you the state of your repository:
+
+* `↑4` - The number of commits your repository is ahead of your remote branch
+* `↓5` - The number of commits your repository is behind of your remote branch
+* `⍟3` - The number of stashes, here 3.
+* `●` - There are unstaged changes in your working copy
+* `✚` - There are staged changes in your working copy
+* `?` - There are files in your working copy, that are unknown to your repository
+
### Styling
You can configure the look and feel of your prompt easily with some built-in
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index c8a9ac89..443f7cc3 100644
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -71,7 +71,7 @@ zstyle ':vcs_info:*' actionformats " %b %F{red}| %a%f"
zstyle ':vcs_info:*' stagedstr " %F{$DEFAULT_COLOR}$VCS_STAGED_ICON%f"
zstyle ':vcs_info:*' unstagedstr " %F{$DEFAULT_COLOR}$VCS_UNSTAGED_ICON%f"
-zstyle ':vcs_info:git*+set-message:*' hooks git-untracked git-aheadbehind git-remotebranch git-tagname
+zstyle ':vcs_info:git*+set-message:*' hooks git-untracked git-aheadbehind git-stash git-remotebranch git-tagname
# For Hg, only show the branch name
zstyle ':vcs_info:hg*:*' branchformat "%b"
@@ -208,6 +208,17 @@ function +vi-git-tagname() {
[[ -n ${tag} ]] && hook_com[branch]=" %F{$DEFAULT_COLOR}${tag}%f"
}
+# Show count of stashed changes
+# Port from https://github.com/whiteinge/dotfiles/blob/5dfd08d30f7f2749cfc60bc55564c6ea239624d9/.zsh_shouse_prompt#L268
+function +vi-git-stash() {
+ local -a stashes
+
+ if [[ -s $(git rev-parse --git-dir)/refs/stash ]] ; then
+ stashes=$(git stash list 2>/dev/null | wc -l)
+ hook_com[misc]+=" %F{$DEFAULT_COLOR}⍟${stashes}%f"
+ fi
+}
+
function +vi-vcs-detect-changes() {
if [[ -n ${hook_com[staged]} ]] || [[ -n ${hook_com[unstaged]} ]]; then
VCS_WORKDIR_DIRTY=true