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 '' %{ 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 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 —