AutoYADM commit: 2025-05-23 17:55:15

This commit is contained in:
Daniel Fichtinger 2025-05-23 17:55:15 -04:00
parent 770c646cc2
commit 99bdbd9453

View file

@ -1,80 +1,48 @@
hook global BufCreate .*[.](kdl) %{
set-option buffer filetype kdl
set-option buffer comment_line "//"
set-option buffer comment_block_begin "/*"
set-option buffer comment_block_end "*/"
# set-option buffer comment_line "//"
# set-option buffer comment_block_begin "/*"
# set-option buffer comment_block_end "*/"
# set-option window formatcmd "kdlfmt format -"
}
hook global WinSetOption filetype=kdl %<
require-module kdl
# hook window InsertChar \n -group kdl-indent %{ kdl-indent-newline }
# hook window InsertChar [}{}] -group kdl-indent kdl-indent-closing-brace
# hook window InsertChar '}' -group kdl-indent %{ kdl-indent-closing-brace }
hook window ModeChange pop:insert:.* -group kdl-trim-indent kdl-trim-indent
hook window InsertChar .* -group kdl-indent kdl-indent-on-char
hook window InsertChar \n -group kdl-indent kdl-indent-on-new-line
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window kdl-.+ }
# hook -group kdl-auto-format window BufWritePre .* format
# hook -once -always WinSetOption filetype=.* %sh{
# if [ "$kak_opt_filetype" != "kdl" ]; then
# echo "unset-option window formatcmd"
# echo "remove-hooks window kdl-auto-format"
# fi
# }
>
provide-module kdl %~
# define-command -hidden kdl-indent-newline %(
# evaluate-commands -no-hooks -draft -itersel %(
# # preserve prev line indent
# try %{ execute-keys -draft K<a-&> }
# # rem trailing whitespace on prev line
# try %( execute-keys -draft kx <a-k>\{$<ret> j<a-gt> )
# # deindent if next line start with {
# try %( execute-keys -draft x <a-k> ^\h*\} <ret> gh / \} <ret> m <a-S> 1<a-&> )
# )
# )
# define-command -hidden kdl-indent-closing-brace %|
# #align closing brace to block start
# # try %= execute-keys -draft x_ <a-k>^\h*\}\z<ret> m<a-S>1<a-&> =
# try %= execute-keys -draft -itersel <a-h><a-k>^\h*\Q %val{hook_param} \E$<ret> mGi s \A|.\z<ret> 1<a-&> =
# |
#
provide-module kdl %(
define-command -hidden kdl-trim-indent %{
# remove trailing white space
# remove trailing white spaces
try %{ execute-keys -draft -itersel x s \h+$ <ret> d }
}
define-command -hidden kdl-indent-on-char %<
evaluate-commands -draft -itersel %<
# align closer to its opener when alone on line
echo -debug 'attempting to indent new char'
# align closer token to its opener when alone on a line
try %< execute-keys -draft <a-h> <a-k> ^\h+[\]}]$ <ret> m <a-S> 1<a-&> >
>
>
define-command -hidden kdl-indent-on-new-line %<
evaluate-commands -draft -itersel %<
# preserve prev indent
echo -debug 'attempting to indent new line'
# preserve previous line indent
try %{ execute-keys -draft <semicolon> K <a-&> }
# filter prev line
# filter previous line
try %{ execute-keys -draft k : kdl-trim-indent <ret> }
# indent after lines ending with opener
try %< execute-keys -draft k x <a-k> [[}]\h*$ <ret> j <a-gt> >
# deindent closer when after cursor
# indent after lines ending with opener token
try %< execute-keys -draft k x <a-k> [[{]\h*$ <ret> j <a-gt> >
# deindent closer token(s) when after cursor
try %< execute-keys -draft x <a-k> ^\h*[}\]] <ret> gh / [}\]] <ret> m <a-S> 1<a-&> >
>
>
~
)