From baabc7743d0bc65d57a3e9921c10dea9d7581a84 Mon Sep 17 00:00:00 2001 From: Munif Tanjim Date: Thu, 13 May 2021 02:14:48 +0600 Subject: [PATCH] fix(zsh): preserve zle-keymap-select (#2717) --- src/init/starship.zsh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/init/starship.zsh b/src/init/starship.zsh index b5e936c4..d36223b4 100644 --- a/src/init/starship.zsh +++ b/src/init/starship.zsh @@ -66,15 +66,14 @@ starship_zle-keymap-select() { } ## Check for existing keymap-select widget. -local existing_keymap_select_fn=$widgets[zle-keymap-select]; # zle-keymap-select is a special widget so it'll be "user:fnName" or nothing. Let's get fnName only. -existing_keymap_select_fn=${existing_keymap_select_fn//user:}; -if [[ -z $existing_keymap_select_fn ]]; then +__starship_preserved_zle_keymap_select=${widgets[zle-keymap-select]#user:} +if [[ -z $__starship_preserved_zle_keymap_select ]]; then zle -N zle-keymap-select starship_zle-keymap-select; else # Define a wrapper fn to call the original widget fn and then Starship's. starship_zle-keymap-select-wrapped() { - $existing_keymap_select_fn "$@"; + $__starship_preserved_zle_keymap_select "$@"; starship_zle-keymap-select "$@"; } zle -N zle-keymap-select starship_zle-keymap-select-wrapped;