Simplify zsh shell integration code

Use the add-zsh-hook and add-zle-hook-widget functions
This commit is contained in:
Kovid Goyal 2021-11-28 08:45:53 +05:30
parent 0a5ffe9b73
commit 3d76c916a5
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -35,17 +35,6 @@
fi fi
} }
function _ksi_zle_keymap_select() {
_ksi_change_cursor_shape
}
function _ksi_zle_keymap_select_with_original() { zle kitty-zle-keymap-select-original; _ksi_zle_keymap_select }
zle -A zle-keymap-select kitty-zle-keymap-select-original 2>/dev/null
if [[ $? == 0 ]]; then
zle -N zle-keymap-select _ksi_zle_keymap_select_with_original
else
zle -N zle-keymap-select _ksi_zle_keymap_select
fi
function _ksi_osc() { function _ksi_osc() {
printf "\e]%s\a" "$1" printf "\e]%s\a" "$1"
} }
@ -106,25 +95,11 @@
_ksi_change_cursor_shape _ksi_change_cursor_shape
_ksi_prompt[state]="line-init" _ksi_prompt[state]="line-init"
} }
function _ksi_zle_line_init_with_orginal() { zle kitty-zle-line-init-original; _ksi_zle_line_init }
zle -A zle-line-init kitty-zle-line-init-original 2>/dev/null
if [[ $? == 0 ]]; then
zle -N zle-line-init _ksi_zle_line_init_with_orginal
else
zle -N zle-line-init _ksi_zle_line_init
fi
function _ksi_zle_line_finish() { function _ksi_zle_line_finish() {
_ksi_change_cursor_shape _ksi_change_cursor_shape
_ksi_prompt[state]="line-finish" _ksi_prompt[state]="line-finish"
} }
function _ksi_zle_line_finish_with_orginal() { zle kitty-zle-line-finish-original; _ksi_zle_line_finish }
zle -A zle-line-finish kitty-zle-line-finish-original 2>/dev/null
if [[ $? == 0 ]]; then
zle -N zle-line-finish _ksi_zle_line_finish_with_orginal
else
zle -N zle-line-finish _ksi_zle_line_finish
fi
function _ksi_preexec() { function _ksi_preexec() {
if [[ "$_ksi_prompt[mark]" == "y" ]]; then if [[ "$_ksi_prompt[mark]" == "y" ]]; then
@ -150,15 +125,15 @@
if [[ $idx -lt ${#precmd_functions[@]} ]]; then if [[ $idx -lt ${#precmd_functions[@]} ]]; then
_ksi_prompt[is_last_precmd]="n" _ksi_prompt[is_last_precmd]="n"
fi fi
precmd_functions[$idx]=() add-zsh-hook -d precmd _ksi_first_run
precmd_functions=($precmd_functions _ksi_precmd) add-zsh-hook precmd _ksi_precmd
typeset -a -g preexec_functions add-zsh-hook preexec _ksi_preexec
preexec_functions=($preexec_functions _ksi_preexec) add-zle-hook-widget keymap-select _ksi_change_cursor_shape
add-zle-hook-widget line-init _ksi_zle_line_init
add-zle-hook-widget line-finish _ksi_zle_line_finish
_ksi_precmd _ksi_precmd
fi fi
} }
typeset -a -g precmd_functions
precmd_functions=($precmd_functions _ksi_first_run)
# Completion for kitty # Completion for kitty
_ksi_complete() { _ksi_complete() {
@ -169,4 +144,8 @@
eval ${src} eval ${src}
fi fi
} }
autoload -Uz add-zsh-hook
autoload -Uz add-zle-hook-widget
add-zsh-hook precmd _ksi_first_run
} }