From 80e799b78267e4c158eccd1f40a3943cf67c7f37 Mon Sep 17 00:00:00 2001 From: Daniel Fichtinger Date: Fri, 23 May 2025 17:45:15 -0400 Subject: [PATCH] AutoYADM commit: 2025-05-23 17:45:15 --- .config/kak/autoload/filetype/kdl.kak | 75 ++++++++++++++++----------- 1 file changed, 45 insertions(+), 30 deletions(-) diff --git a/.config/kak/autoload/filetype/kdl.kak b/.config/kak/autoload/filetype/kdl.kak index 3bad9a1a..755157e4 100644 --- a/.config/kak/autoload/filetype/kdl.kak +++ b/.config/kak/autoload/filetype/kdl.kak @@ -1,3 +1,33 @@ +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 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 InsertChar .* -group kdl-indent kdl-indent-on-char + hook window ModeChange pop:insert:.* -group kdl-trim-indent kdl-trim-indent + 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 %( @@ -17,13 +47,26 @@ provide-module kdl %~ # # try %= execute-keys -draft x_ ^\h*\}\z m1 = # try %= execute-keys -draft -itersel ^\h*\Q %val{hook_param} \E$ mGi s \A|.\z 1 = # | +# + +define-command -hidden kdl-trim-indent %{ +# remove trailing white space + try %{ execute-keys -draft -itersel x s \h+$ d } +} + +define-command -hidden kdl-indent-on-char %< + evaluate-commands -draft -itersel %< + # align closer to its opener when alone on line + try %< execute-keys -draft ^\h+[\]}]$ m 1 > + > +> define-command -hidden kdl-indent-on-new-line %< evaluate-commands -draft -itersel %< - # preserve prev indent +# preserve prev indent try %{ execute-keys -draft K } # filter prev line - # try %{ execute-keys -draft k : json-trim-indent } + try %{ execute-keys -draft k : kdl-trim-indent } # indent after lines ending with opener try %< execute-keys -draft k x [[}]\h*$ j > # deindent closer when after cursor @@ -33,31 +76,3 @@ define-command -hidden kdl-indent-on-new-line %< ~ -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 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 InsertChar \n -group kdl-indent kdl-indent-on-new-line - - hook -once -always window WinSetOption filetype=.* %{ remove-hooks window kdl-indent } - - # 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 - # } -> -