runtime(comment): handle special chars ^$[ robustly

Make sure comment toggling works when 'commentstring' contains
any of the following regex special characters by escaping them:

^ $ [

closes: #17537

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Maxim Kim
2025-06-13 20:18:50 +02:00
committed by Christian Brabandt
parent 1ded411a41
commit aef2e53cf8

View File

@ -1,7 +1,7 @@
vim9script
# Maintainer: Maxim Kim <habamax@gmail.com>
# Last Update: 2025-06-12
# Last Update: 2025-06-13
#
# Toggle comments
# Usage:
@ -19,7 +19,7 @@ export def Toggle(...args: list<string>): string
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