diff options
| author | Maxime Coste <mawww@kakoune.org> | 2023-07-04 19:33:37 +1000 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2023-07-04 19:33:37 +1000 |
| commit | 3fae7cd7c045f0a574ce83da574f0b678d1bc0ad (patch) | |
| tree | 4a621c7ffccc91f01efd0fd841f02cf1456a8fe7 | |
| parent | 96ff68aeae0f21ab9b1e717987f867d17344c8bf (diff) | |
| parent | 3cca4c5098605964f839769c2169f04820bf1908 (diff) | |
Merge remote-tracking branch 'arrufat/zig-auto-remove-empty-comments'
| -rw-r--r-- | rc/filetype/zig.kak | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/rc/filetype/zig.kak b/rc/filetype/zig.kak index fe1df7ac..afdeb521 100644 --- a/rc/filetype/zig.kak +++ b/rc/filetype/zig.kak @@ -101,10 +101,22 @@ define-command -hidden zig-trim-indent %{ } define-command -hidden zig-insert-on-new-line %< - evaluate-commands -draft -itersel %< - # 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 > - > + try %[ + evaluate-commands -draft -save-regs '/"' %[ + # copy // or /// comments prefix or \\ string literal prefix and following whitespace + 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 %< |
