mirror of
https://github.com/zsh-users/zsh-autosuggestions.git
synced 2025-12-08 15:32:31 +01:00
Cleanup
This commit is contained in:
parent
7dc9e0f926
commit
fc3f368acf
15 changed files with 224 additions and 708 deletions
53
lib/widget/hook.zsh
Normal file
53
lib/widget/hook.zsh
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
_zsh_autosuggest_is_defined_widget() {
|
||||
[ -n "$widgets[$1]" ]
|
||||
}
|
||||
|
||||
_zsh_autosuggest_is_built_in_widget() {
|
||||
[ -n "$widgets[.$1]" ]
|
||||
}
|
||||
|
||||
_zsh_autosuggest_is_original_widget_defined() {
|
||||
_zsh_autosuggest_is_defined_widget $(_zsh_autosuggest_original_widget $1)
|
||||
}
|
||||
|
||||
_zsh_autosuggest_original_widget() {
|
||||
if _zsh_autosuggest_is_built_in_widget $1; then
|
||||
echo ".$1"
|
||||
else
|
||||
echo "_autosuggest_original_$1"
|
||||
fi
|
||||
}
|
||||
|
||||
_zsh_autosuggest_hook_widget() {
|
||||
local autosuggest_widget=$1
|
||||
local widget=$2
|
||||
|
||||
# Skip if the widget does not exist
|
||||
if ! _zsh_autosuggest_is_defined_widget $widget; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Alias if dot-prefixed alias is unavailable and we haven't already aliased it
|
||||
if ! _zsh_autosuggest_is_original_widget_defined $widget; then
|
||||
zle -A $widget $(_zsh_autosuggest_original_widget $widget)
|
||||
fi
|
||||
|
||||
# Hook it
|
||||
zle -A $autosuggest_widget $widget
|
||||
}
|
||||
|
||||
_zsh_autosuggest_hook_widgets() {
|
||||
local widget
|
||||
|
||||
for widget in $ZSH_AUTOSUGGEST_MODIFY_WIDGETS; do
|
||||
_zsh_autosuggest_hook_widget _zsh_autosuggest_widget_modify $widget
|
||||
done
|
||||
|
||||
for widget in $ZSH_AUTOSUGGEST_CLEAR_WIDGETS; do
|
||||
_zsh_autosuggest_hook_widget _zsh_autosuggest_widget_clear $widget
|
||||
done
|
||||
|
||||
for widget in $ZSH_AUTOSUGGEST_ACCEPT_WIDGETS; do
|
||||
_zsh_autosuggest_hook_widget _zsh_autosuggest_widget_accept $widget
|
||||
done
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue