driver: Rewrite without a state variable
Suggested-by: m0viefreak
This commit is contained in:
parent
d2594c1157
commit
b5249f17ab
@ -93,13 +93,6 @@ _zsh_highlight__function_callable_p() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
integer zsh_highlight_use_redrawhook
|
|
||||||
if _zsh_highlight__function_callable_p add-zle-hook-widget
|
|
||||||
then
|
|
||||||
autoload -U add-zle-hook-widget
|
|
||||||
(( zsh_highlight_use_redrawhook=1 ))
|
|
||||||
fi
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------------
|
||||||
# Core highlighting update system
|
# Core highlighting update system
|
||||||
# -------------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------------
|
||||||
@ -341,7 +334,25 @@ _zsh_highlight_call_widget()
|
|||||||
_zsh_highlight
|
_zsh_highlight
|
||||||
}
|
}
|
||||||
|
|
||||||
if true; then
|
if _zsh_highlight__function_callable_p add-zle-hook-widget
|
||||||
|
then
|
||||||
|
autoload -U add-zle-hook-widget
|
||||||
|
_zsh_highlight__zle-line-finish() {
|
||||||
|
# Reset $WIDGET since the 'main' highlighter depends on it.
|
||||||
|
#
|
||||||
|
# A nested function is required to hide zle parameters; see
|
||||||
|
# "User-defined widgets" in zshall.
|
||||||
|
() {
|
||||||
|
local -h +r WIDGET=zle-line-finish
|
||||||
|
_zsh_highlight "$@"
|
||||||
|
} "$@"
|
||||||
|
}
|
||||||
|
_zsh_highlight_bind_widgets(){}
|
||||||
|
if [[ -o zle ]]; then
|
||||||
|
add-zle-hook-widget zle-line-pre-redraw _zsh_highlight
|
||||||
|
add-zle-hook-widget zle-line-finish _zsh_highlight__zle-line-finish
|
||||||
|
fi
|
||||||
|
else
|
||||||
# Rebind all ZLE widgets to make them invoke _zsh_highlights.
|
# Rebind all ZLE widgets to make them invoke _zsh_highlights.
|
||||||
_zsh_highlight_bind_widgets()
|
_zsh_highlight_bind_widgets()
|
||||||
{
|
{
|
||||||
@ -410,24 +421,6 @@ if true; then
|
|||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (( $zsh_highlight_use_redrawhook )); then
|
|
||||||
_zsh_highlight__zle-line-finish() {
|
|
||||||
# Reset $WIDGET since the 'main' highlighter depends on it.
|
|
||||||
#
|
|
||||||
# A nested function is required to hide zle parameters; see
|
|
||||||
# "User-defined widgets" in zshall.
|
|
||||||
() {
|
|
||||||
local -h +r WIDGET=zle-line-finish
|
|
||||||
_zsh_highlight "$@"
|
|
||||||
} "$@"
|
|
||||||
}
|
|
||||||
_zsh_highlight_bind_widgets(){}
|
|
||||||
if [[ -o zle ]]; then
|
|
||||||
add-zle-hook-widget zle-line-pre-redraw _zsh_highlight
|
|
||||||
add-zle-hook-widget zle-line-finish _zsh_highlight__zle-line-finish
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Load highlighters from directory.
|
# Load highlighters from directory.
|
||||||
#
|
#
|
||||||
# Arguments:
|
# Arguments:
|
||||||
|
Loading…
Reference in New Issue
Block a user