You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.9 KiB
Plaintext

declare-option -hidden str explore_buffers_current
set-face global ExploreBuffers 'yellow,default'
add-highlighter shared/buffers regions
add-highlighter shared/buffers/content default-region group
add-highlighter shared/buffers/content/buffers regex '^.+$' 0:ExploreBuffers
define-command -hidden explore-buffers -docstring 'Explore buffers' %{ evaluate-commands -save-regs '"/' %{
set-option current explore_buffers_current %val(bufname)
edit! -scratch *buffers*
set-option buffer filetype buffers
evaluate-commands set-register dquote %val(buflist)
execute-keys '<a-R>)<a-space>i<ret><esc><space>'
set-register / "\Q%opt(explore_buffers_current)\E"
execute-keys n
}}
define-command -hidden explore-buffers-parent -docstring 'Explore the parent directory of the selected buffer' %{
explore-buffers-validate
explore-files %sh(dirname "$kak_buffile")
}
define-command -hidden explore-buffers-validate -docstring 'Edit selected buffer' %{
execute-keys '<space><a-x>_'
buffer %reg(.)
delete-buffer *buffers*
}
define-command -hidden explore-buffers-delete -docstring 'Delete selected buffer' %{
execute-keys '<space><a-x>_'
delete-buffer %reg(.)
explore-buffers
}
hook global WinSetOption filetype=buffers %{
add-highlighter window/ ref buffers
map window normal <ret> ': explore-buffers-validate<ret>'
map window normal <backspace> ': explore-buffers-parent<ret>'
map window normal q ': delete-buffer<ret>'
map window normal <esc> ': delete-buffer<ret>'
map window normal d ': explore-buffers-delete<ret>'
hook -always -once window WinSetOption filetype=.* %{
remove-highlighter window/buffers
}
}
define-command -hidden explore-buffers-enable %{
hook window -group explore-buffers RuntimeError '\d+:\d+: ''(buffer|b)'' wrong argument count' %{
# Hide error message
echo
explore-buffers
}
}
hook -group explore-buffers global WinCreate .* %{
explore-buffers-enable
}