vim9script
# Maintainer: Maxim Kim <habamax@gmail.com>
-# Last Update: 2025-04-22
+# Last Update: 2025-06-12
#
# Toggle comments
# Usage:
if empty(&cms) || !&ma | return '' | endif
var cms = substitute(substitute(&cms, '\S\zs%s\s*', ' %s', ''), '%s\ze\S', '%s ', '')
var [lnum1, lnum2] = [line("'["), line("']")]
- var cms_l = split(escape(cms, '*.'), '\s*%s\s*')
+ var cms_l = split(escape(cms, '*.\'), '\s*%s\s*')
var first_col = indent(lnum1)
var start_col = getpos("'[")[2] - 1
call assert_equal(["# vim9script", "", "def Hello()", ' echo "Hello"', "enddef"], result)
endfunc
+func Test_backward_slash_uncomment()
+ " Note this test depends on 'commentstring' setting in nroff ftplugin
+ CheckScreendump
+ let lines =<< trim END
+ .\" .TL Test backward slash uncomment
+ END
+
+ let input_file = "Test_backward_slash_uncomment_input.mom"
+ call writefile(lines, input_file, "D")
+
+ let buf = RunVimInTerminal('-c "packadd comment" ' .. input_file, {})
+
+ call term_sendkeys(buf, "gcc")
+ let output_file = "backward_slash_uncomment_test.mom"
+ call term_sendkeys(buf, $":w {output_file}\<CR>")
+ defer delete(output_file)
+
+ call StopVimInTerminal(buf)
+
+ let result = readfile(output_file)
+
+ call assert_equal([".TL Test backward slash uncomment"], result)
+endfunc
+
func Test_caseinsensitive_uncomment()
CheckScreendump
let lines =<< trim END