dotfiles/.config/kak/autoload/search-highlight.kak

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