Simplify zsh shell integration code
Use the add-zsh-hook and add-zle-hook-widget functions
This commit is contained in:
parent
0a5ffe9b73
commit
3d76c916a5
@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user