AutoYADM commit: 2025-07-01 15:55:01

This commit is contained in:
Daniel Fichtinger 2025-07-01 15:55:01 -04:00
parent 378349c544
commit 0b5efac511

View file

@ -7,12 +7,21 @@ provide-module search-highlight %—
declare-option -docstring %{ declare-option -docstring %{
Face definition for search highlighting. See :doc faces. Face definition for search highlighting. See :doc faces.
} str search_highlight_face rgb:D87C4A+i } str search_highlight_face rgb:D87C4A+i
declare-option -docstring %{
Whether escaping the search prompt should clear the highlighting.
} bool search_highlight_prompt_escape false
declare-option -docstring %{
Whether the highlighting should always be cleared when returning to
normal mode. Takes priority over search_highlight_prompt_escape.
} bool search_highlight_auto_clear false
## end ## end
# track current highlighting status # track current highlighting status
declare-option -hidden str search_highlight_status 'search-highlight-off' declare-option -hidden str search_highlight_status 'search-highlight-off'
def -hidden -override search-highlight-on nop def -hidden -override search-highlight-on nop
def -hidden -override search-highlight-off fail def -hidden -override search-highlight-off fail
def -hidden -override true nop
def -hidden -override false fail
declare-option -hidden bool search_highlight_quit false declare-option -hidden bool search_highlight_quit false
@ -35,9 +44,13 @@ provide-module search-highlight %—
try %{ try %{
%opt{search_highlight_status} %opt{search_highlight_status}
} catch %{ } catch %{
try %{
# if the user escapes search, we should immediately clear the highlight # if the user escapes search, we should immediately clear the highlight
# in normal mode so we set the flag before escaping # in normal mode so we set the flag before escaping
# map window prompt <esc> '<a-;>: set-option window search_highlight_quit true<ret><esc>' # but only if the option is set
%opt{search_highlight_prompt_escape}
map window prompt <esc> '<a-;>: set-option window search_highlight_quit true<ret><esc>'
}
# if not already enabled, add the highlighter # if not already enabled, add the highlighter
add-highlighter window/search-highlight dynregex '%reg{/}' %exp{0:%opt{search_highlight_face}} add-highlighter window/search-highlight dynregex '%reg{/}' %exp{0:%opt{search_highlight_face}}
# update status tracker # update status tracker
@ -45,6 +58,11 @@ provide-module search-highlight %—
# register hook to clear highlighter after leaving search # register hook to clear highlighter after leaving search
hook -once -group search-highlight window NormalIdle .* %{ hook -once -group search-highlight window NormalIdle .* %{
# check if auto clear is set
try %{
%opt{search_highlight_auto_clear}
search-highlight-clear
} catch %{
# check if user escaped search # check if user escaped search
try %{ try %{
%opt{search_highlight_quit} %opt{search_highlight_quit}
@ -56,6 +74,7 @@ provide-module search-highlight %—
search-highlight-clear search-highlight-clear
} }
} }
}
# clear the prompt mapping so it doesn't conflict with # clear the prompt mapping so it doesn't conflict with
# other prompt types # other prompt types
unmap window prompt <esc> unmap window prompt <esc>