49 lines
1.8 KiB
Text
49 lines
1.8 KiB
Text
provide-module search-highlight %—
|
|
## begin public options
|
|
declare-option -docstring %{
|
|
Face definition for search highlighting. See :doc faces.
|
|
} str search_highlight_face rgb:D87C4A+i
|
|
## end
|
|
|
|
# track current highlighting status
|
|
declare-option -hidden str search_highlight_status 'search-highlight-off'
|
|
def -hidden -override search-highlight-on nop
|
|
def -hidden -override search-highlight-off fail
|
|
|
|
define-command -hidden search-highlight-enable-impl %{
|
|
hook -group search-highlight window RegisterModified '/' %{
|
|
try %{
|
|
%opt{search_highlight_status}
|
|
} catch %{
|
|
add-highlighter window/search-highlight dynregex '%reg{/}' %exp{0:%opt{search_highlight_face}}
|
|
set-option window search_highlight_status 'search-highlight-on'
|
|
}
|
|
}
|
|
hook -group search-highlight window NormalKey '<esc>' %{
|
|
try %{
|
|
%opt{search_highlight_status}
|
|
remove-highlighter window/search-highlight
|
|
set-option window search_highlight_status 'search-highlight-off'
|
|
}
|
|
}
|
|
}
|
|
define-command -hidden search-highlight-disable-impl %{
|
|
remove-hooks window search-highlight
|
|
}
|
|
## begin public commands
|
|
define-command -docstring %{
|
|
Enable search highlighting. Press <esc> in normal mode to clear
|
|
highlighting of the current search.
|
|
|
|
Respects the search_highlight_face option.
|
|
} search-highlight-enable %{
|
|
search-highlight-enable-impl
|
|
}
|
|
define-command -docstring %{
|
|
Disable search highlighting. Respects the search_highlight_face
|
|
option.
|
|
} search-highlight-disable %{
|
|
search-highlight-disable-impl
|
|
}
|
|
## end
|
|
—
|