@@ -1175,9 +1175,11 @@ function! vimtex#syntax#core#new_cmd_with_concealed_delims(cfg) abort " {{{1
11751175 let l: pre = l: cfg .mathmode ? ' texMath' : ' tex'
11761176 let l: name = ' C' . toupper (l: cfg .name[0 ]) . l: cfg .name[1 :]
11771177 let l: group_cmd = l: pre . ' Cmd' . l: name
1178- let l: group_arg1 = l: pre . l: name . ' Arg'
1179- let l: group_arg2 = l: pre . l: name . ' Arg2'
11801178 let l: group_delims = l: pre . l: name . ' ConcealedDelim'
1179+ let l: group_args = map (
1180+ \ range (1 , l: cfg .nargs ),
1181+ \ { _, x - > l: pre .. l: name .. ' Arg' .. x }
1182+ \)
11811183
11821184 if l: cfg .mathmode
11831185 let l: contains = ' @texClusterMath'
@@ -1194,34 +1196,28 @@ function! vimtex#syntax#core#new_cmd_with_concealed_delims(cfg) abort " {{{1
11941196 \ empty (l: cfg .cchar_open)
11951197 \ ? ' conceal'
11961198 \ : ' conceal cchar=' . l: cfg .cchar_open
1197- \ ' skipwhite nextgroup=' . l: group_arg1
1199+ \ ' skipwhite nextgroup=' . l: group_args [ 0 ]
11981200
1199- if l: cfg .nargs == 1
1200- execute ' syntax region' l: group_arg1
1201- \ ' matchgroup=' . l: group_delims
1202- \ empty (l: cfg .cchar_close)
1203- \ ? ' concealends'
1204- \ : ' concealends cchar=' . l: cfg .cchar_close
1205- \ ' start="{" skip="\%#=1\\[\\\}]" end="}"'
1206- \ ' contained contains=' . l: contains
1207- else
1208- execute ' syntax region' l: group_arg1
1201+ for l: i in range (l: cfg .nargs - 1 )
1202+ let l: group_arg_current = l: group_args [l: i ]
1203+ let l: group_arg_next = l: group_args [l: i + 1 ]
1204+ execute ' syntax region' l: group_arg_current
12091205 \ ' matchgroup=' . l: group_delims
12101206 \ empty (l: cfg .cchar_mid)
12111207 \ ? ' concealends'
12121208 \ : ' concealends cchar=' . l: cfg .cchar_mid
12131209 \ ' start="{" skip="\%#=1\\[\\\}]" end="}"'
12141210 \ ' contained contains=' . l: contains
1215- \ ' skipwhite nextgroup=' . l: group_arg2
1211+ \ ' skipwhite nextgroup=' . l: group_arg_next
1212+ endfor
12161213
1217- execute ' syntax region' l: group_arg2
1218- \ ' matchgroup=' . l: group_delims
1219- \ empty (l: cfg .cchar_close)
1220- \ ? ' concealends'
1221- \ : ' concealends cchar=' . l: cfg .cchar_close
1222- \ ' start="{" skip="\%#=1\\[\\\}]" end="}"'
1223- \ ' contained contains=' . l: contains
1224- endif
1214+ execute ' syntax region' l: group_args [-1 ]
1215+ \ ' matchgroup=' . l: group_delims
1216+ \ empty (l: cfg .cchar_close)
1217+ \ ? ' concealends'
1218+ \ : ' concealends cchar=' . l: cfg .cchar_close
1219+ \ ' start="{" skip="\%#=1\\[\\\}]" end="}"'
1220+ \ ' contained contains=' . l: contains
12251221
12261222 " Define default highlight rule
12271223 execute ' highlight def link' l: group_cmd
@@ -1241,10 +1237,9 @@ function! vimtex#syntax#core#new_cmd_with_concealed_delims(cfg) abort " {{{1
12411237 \} , l: cfg .argstyle,
12421238 \ l: cfg .mathmode ? ' texMathArg' : ' ' )
12431239 if ! empty (l: style )
1244- execute ' highlight def link' l: group_arg1 l: style
1245- if l: cfg .nargs > 1
1246- execute ' highlight def link' l: group_arg2 l: style
1247- endif
1240+ for l: group_arg in l: group_args
1241+ execute ' highlight def link' l: group_arg l: style
1242+ endfor
12481243 endif
12491244endfunction
12501245
0 commit comments