From cea35cf5f418a40af78514d1da53fdfd30659e54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Arrufat?= Date: Sun, 2 Apr 2023 21:09:57 +0900 Subject: [PATCH] Delete commenting prefix on empty lines in Python --- rc/filetype/python.kak | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/rc/filetype/python.kak b/rc/filetype/python.kak index 391789ba3..65da1a899 100644 --- a/rc/filetype/python.kak +++ b/rc/filetype/python.kak @@ -163,12 +163,25 @@ add-highlighter shared/python/code/ regex ^\h*(?:from|import)\h+(\S+) 1:module # Commands # ‾‾‾‾‾‾‾‾ -define-command -hidden python-insert-on-new-line %{ - evaluate-commands -draft -itersel %{ - # copy '#' comment prefix and following white spaces - try %{ execute-keys -draft k x s ^\h*#\h* y jgh P } +define-command -hidden python-insert-on-new-line %{ evaluate-commands -itersel -draft %{ + execute-keys + try %{ + evaluate-commands -draft -save-regs '/"' %{ + # copy the commenting prefix + execute-keys -save-regs '' k x1s^\h*(#+\h*) y + try %{ + # if the previous comment isn't empty, create a new one + execute-keys x^\h*#+\h*$ jxs^\h*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+$ d } } -} +} } define-command -hidden python-indent-on-new-line %< evaluate-commands -draft -itersel %<