#
# Integrates history-substring-search into Oh My Zsh.
#
# Authors:
#   Suraj N. Kurapati <sunaku@gmail.com>
#   Sorin Ionescu <sorin.ionescu@gmail.com>
#

source "${0:h}/external/zsh-history-substring-search.zsh"

#
# Styles
#

if zstyle -t ':omz:module:history-substring-search' case-sensitive; then
  unset HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS
fi

if ! zstyle -t ':omz:module:history-substring-search' color; then
  unset HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_{FOUND,NOT_FOUND}
fi

#
# Key Bindings
#

# Emacs
bindkey -M emacs "$key_info[Control]P" history-substring-search-up
bindkey -M emacs "$key_info[Control]N" history-substring-search-down

# Vi
bindkey -M vicmd "k" history-substring-search-up
bindkey -M vicmd "j" history-substring-search-down

# Emacs and Vi
for keymap in 'emacs' 'viins'; do
  bindkey -M "$keymap" "$key_info[Up]" history-substring-search-up
  bindkey -M "$keymap" "$key_info[Down]" history-substring-search-down
done