mirror of
https://github.com/zsh-users/zsh-syntax-highlighting.git
synced 2025-02-13 10:05:31 +08:00
treat zle-isearch-exit like an accept-* widget
Accepting a line in an iserch does not call through any of the accept-widgets. To be able to still do some cleanup (remove cursor imprint, remove partial path highlinting) use zle-isearch-exit instead.
This commit is contained in:
parent
38c3ac8831
commit
fb418b90d3
@ -34,15 +34,14 @@
|
|||||||
# Whether the cursor highlighter should be called or not.
|
# Whether the cursor highlighter should be called or not.
|
||||||
_zsh_highlight_cursor_highlighter_predicate()
|
_zsh_highlight_cursor_highlighter_predicate()
|
||||||
{
|
{
|
||||||
# accept-* may trigger removal of cursor highlighting
|
# widgets which accept lines may trigger removal of cursor highlighting
|
||||||
[[ $WIDGET == accept-* ]] ||
|
_zsh_highlight_cursor_moved || _zsh_highlight_is_accept_line_type_widget
|
||||||
_zsh_highlight_cursor_moved
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Cursor highlighting function.
|
# Cursor highlighting function.
|
||||||
_zsh_highlight_cursor_highlighter()
|
_zsh_highlight_cursor_highlighter()
|
||||||
{
|
{
|
||||||
[[ $WIDGET == accept-* ]] && return
|
_zsh_highlight_is_accept_line_type_widget && return
|
||||||
|
|
||||||
region_highlight+=("$CURSOR $(( $CURSOR + 1 )) $ZSH_HIGHLIGHT_STYLES[cursor]")
|
region_highlight+=("$CURSOR $(( $CURSOR + 1 )) $ZSH_HIGHLIGHT_STYLES[cursor]")
|
||||||
}
|
}
|
||||||
|
@ -60,8 +60,8 @@
|
|||||||
# Whether the highlighter should be called or not.
|
# Whether the highlighter should be called or not.
|
||||||
_zsh_highlight_main_highlighter_predicate()
|
_zsh_highlight_main_highlighter_predicate()
|
||||||
{
|
{
|
||||||
# accept-* may trigger removal of path_prefix highlighting
|
# widgets which accept lines may trigger removal of path_prefix highlighting
|
||||||
[[ $WIDGET == accept-* ]] ||
|
_zsh_highlight_is_accept_line_type_widget ||
|
||||||
_zsh_highlight_buffer_modified
|
_zsh_highlight_buffer_modified
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -455,7 +455,7 @@ _zsh_highlight_main_highlighter_check_path()
|
|||||||
|
|
||||||
# If this word ends the buffer, check if it's the prefix of a valid path.
|
# If this word ends the buffer, check if it's the prefix of a valid path.
|
||||||
if [[ ${BUFFER[1]} != "-" && ${#BUFFER} == $end_pos ]] &&
|
if [[ ${BUFFER[1]} != "-" && ${#BUFFER} == $end_pos ]] &&
|
||||||
[[ $WIDGET != accept-* ]]; then
|
! _zsh_highlight_is_accept_line_type_widget; then
|
||||||
local -a tmp
|
local -a tmp
|
||||||
tmp=( ${expanded_path}*(N) )
|
tmp=( ${expanded_path}*(N) )
|
||||||
(( $#tmp > 0 )) && style_override=path_prefix && return 0
|
(( $#tmp > 0 )) && style_override=path_prefix && return 0
|
||||||
|
@ -174,6 +174,14 @@ _zsh_highlight_cursor_moved()
|
|||||||
[[ -n $CURSOR ]] && [[ -n ${_ZSH_HIGHLIGHT_PRIOR_CURSOR-} ]] && (($_ZSH_HIGHLIGHT_PRIOR_CURSOR != $CURSOR))
|
[[ -n $CURSOR ]] && [[ -n ${_ZSH_HIGHLIGHT_PRIOR_CURSOR-} ]] && (($_ZSH_HIGHLIGHT_PRIOR_CURSOR != $CURSOR))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Whether the current widget is an accept-line type widget.
|
||||||
|
#
|
||||||
|
# Returns 0 if the the current widget is an accept-line type widget.
|
||||||
|
_zsh_highlight_is_accept_line_type_widget()
|
||||||
|
{
|
||||||
|
[[ $WIDGET == accept-* ]] || [[ $WIDGET == zsh-isearch-exit ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------------
|
||||||
# Setup functions
|
# Setup functions
|
||||||
|
Loading…
Reference in New Issue
Block a user