forked from aniani/vim
patch 9.1.1456: comment plugin fails toggling if 'cms' contains \
Problem: comment plugin fails toggling if 'cms' contains \ Solution: escape backslash (Maxim Kim) groff could be commented using \" or \# and comment plugin fails to uncomment such things. NOTE: if newstyle comment would be introduced, e.g. .\# for groff test would need to be adjusted. closes: #17530 Signed-off-by: Maxim Kim <habamax@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
parent
16e9b477ab
commit
532a5fb131
@ -1,7 +1,7 @@
|
|||||||
vim9script
|
vim9script
|
||||||
|
|
||||||
# Maintainer: Maxim Kim <habamax@gmail.com>
|
# Maintainer: Maxim Kim <habamax@gmail.com>
|
||||||
# Last Update: 2025-04-22
|
# Last Update: 2025-06-12
|
||||||
#
|
#
|
||||||
# Toggle comments
|
# Toggle comments
|
||||||
# Usage:
|
# Usage:
|
||||||
@ -19,7 +19,7 @@ export def Toggle(...args: list<string>): string
|
|||||||
if empty(&cms) || !&ma | return '' | endif
|
if empty(&cms) || !&ma | return '' | endif
|
||||||
var cms = substitute(substitute(&cms, '\S\zs%s\s*', ' %s', ''), '%s\ze\S', '%s ', '')
|
var cms = substitute(substitute(&cms, '\S\zs%s\s*', ' %s', ''), '%s\ze\S', '%s ', '')
|
||||||
var [lnum1, lnum2] = [line("'["), line("']")]
|
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 first_col = indent(lnum1)
|
||||||
var start_col = getpos("'[")[2] - 1
|
var start_col = getpos("'[")[2] - 1
|
||||||
|
@ -59,6 +59,30 @@ func Test_basic_uncomment()
|
|||||||
call assert_equal(["# vim9script", "", "def Hello()", ' echo "Hello"', "enddef"], result)
|
call assert_equal(["# vim9script", "", "def Hello()", ' echo "Hello"', "enddef"], result)
|
||||||
endfunc
|
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()
|
func Test_caseinsensitive_uncomment()
|
||||||
CheckScreendump
|
CheckScreendump
|
||||||
let lines =<< trim END
|
let lines =<< trim END
|
||||||
|
@ -709,6 +709,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1456,
|
||||||
/**/
|
/**/
|
||||||
1455,
|
1455,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user