Auto-remove empty comments in Zig like in the C-family.

This makes Kakoune behave more consistently when using it for Zig.
Empty comments are already auto-removed from the C-family and Python.
In this PR, string literals that start with \\ are not removed in purpose.
This commit is contained in:
Adrià Arrufat 2023-07-04 16:40:24 +09:00
parent 53fed4b8b9
commit 3cca4c5098

View File

@ -101,10 +101,22 @@ define-command -hidden zig-trim-indent %{
} }
define-command -hidden zig-insert-on-new-line %< define-command -hidden zig-insert-on-new-line %<
evaluate-commands -draft -itersel %< try %[
evaluate-commands -draft -save-regs '/"' %[
# copy // or /// comments prefix or \\ string literal prefix and following whitespace # copy // or /// comments prefix or \\ string literal prefix and following whitespace
try %< execute-keys -draft k x s ^\h*\K(///?|\\\\)\h* <ret> y gh j P > execute-keys -save-regs '' k x1s^\h*((///?|\\\\)+\h*)<ret> y
> try %[
# if the previous comment isn't empty, create a new one
execute-keys x<a-K>^\h*//+\h*$<ret> jxs^\h*<ret>P
] catch %[
# if there is no text in the previous comment, remove it completely
execute-keys d
]
]
# trim trailing whitespace on the previous line
try %[ execute-keys -draft k x s\h+$<ret> d ]
]
> >
define-command -hidden zig-indent-on-new-line %< define-command -hidden zig-indent-on-new-line %<