Skip to content

Commit

Permalink
feat: migrate vi_mode section from core
Browse files Browse the repository at this point in the history
  • Loading branch information
denysdovhan committed May 26, 2022
1 parent 3e1e2c2 commit b705eaa
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 41 deletions.
41 changes: 0 additions & 41 deletions spaceship-section.plugin.zsh

This file was deleted.

58 changes: 58 additions & 0 deletions spaceship-vi-mode.plugin.zsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#
# vi-mode
#

# ------------------------------------------------------------------------------
# Configuration
# ------------------------------------------------------------------------------

SPACESHIP_VI_MODE_SHOW="${SPACESHIP_VI_MODE_SHOW=true}"
SPACESHIP_VI_MODE_PREFIX="${SPACESHIP_VI_MODE_PREFIX=""}"
SPACESHIP_VI_MODE_SUFFIX="${SPACESHIP_VI_MODE_SUFFIX="$SPACESHIP_PROMPT_DEFAULT_SUFFIX"}"
SPACESHIP_VI_MODE_INSERT="${SPACESHIP_VI_MODE_INSERT="[I]"}"
SPACESHIP_VI_MODE_NORMAL="${SPACESHIP_VI_MODE_NORMAL="[N]"}"
SPACESHIP_VI_MODE_COLOR="${SPACESHIP_VI_MODE_COLOR="white"}"

# ------------------------------------------------------------------------------
# Section
# ------------------------------------------------------------------------------

# Show current vi-mode mode
spaceship_vi_mode() {
[[ $SPACESHIP_VI_MODE_SHOW == true ]] || return

if bindkey | grep "vi-quoted-insert" > /dev/null 2>&1; then # check if vi-mode enabled
local mode_indicator="${SPACESHIP_VI_MODE_INSERT}"

case "${KEYMAP}" in
main|viins)
mode_indicator="${SPACESHIP_VI_MODE_INSERT}"
;;
vicmd)
mode_indicator="${SPACESHIP_VI_MODE_NORMAL}"
;;
esac

spaceship::section \
"$SPACESHIP_VI_MODE_COLOR" \
"$SPACESHIP_VI_MODE_PREFIX" \
"$mode_indicator" \
"$SPACESHIP_VI_MODE_SUFFIX"
fi
}

# ------------------------------------------------------------------------------
# Helpers
# ------------------------------------------------------------------------------

# Temporarily switch to vi-mode
spaceship_vi_mode_enable() {
function zle-keymap-select() { zle reset-prompt ; zle -R }
zle -N zle-keymap-select
bindkey -v
}

# Temporarily switch to emacs-mode
spaceship_vi_mode_disable() {
bindkey -e
}

0 comments on commit b705eaa

Please sign in to comment.