aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--powerlevel9k.zsh-theme14
2 files changed, 16 insertions, 0 deletions
diff --git a/README.md b/README.md
index 99e86317..0897862f 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,7 @@ information in configurable prompt segments.
* 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
+ * current active bookmark (mercurial only)
* various working tree statuses (e.g., unstaged, staged, etc.,)
* Shows return-code of the last command if it is an error code
* Indicates background jobs with a gear icon
@@ -150,6 +151,7 @@ The `vcs` segment uses various symbols to tell you the state of your repository:
* `✚` - There are staged changes in your working copy
* `?` - There are files in your working copy, that are unknown to your repository
* `→` - The name of your branch differs from its tracking branch.
+* `☿` - A mercurial bookmark is active.
### Styling
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index 1662d58d..0acd44bc 100644
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -104,6 +104,8 @@ zstyle ':vcs_info:git*+set-message:*' hooks git-untracked git-aheadbehind git-st
zstyle ':vcs_info:hg*:*' branchformat "%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
@@ -236,6 +238,18 @@ function +vi-git-stash() {
fi
}
+function +vi-hg-bookmarks() {
+ if [[ -n "${hgbmarks[@]}" ]]; then
+ hook_com[hg-bookmark-string]=" ☿ ${hgbmarks[@]}"
+
+ # And to signal, that we want to use the sting we just generated,
+ # set the special variable `ret' to something other than the default
+ # zero:
+ ret=1
+ return 0
+ fi
+}
+
function +vi-vcs-detect-changes() {
if [[ -n ${hook_com[staged]} ]] || [[ -n ${hook_com[unstaged]} ]]; then
VCS_WORKDIR_DIRTY=true