From: Doug Kearns Date: Thu, 26 Dec 2024 09:13:45 +0000 (+0100) Subject: runtime(vim): Update base-syntax, allow parens in default arguments X-Git-Tag: v9.1.0962~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b67a2e1ddf277faf01fa957bf72f7b804a7cb7f;p=thirdparty%2Fvim.git runtime(vim): Update base-syntax, allow parens in default arguments Allow parentheses in default arguments specified in :def and :function definitions. fixes #16243 closes: #16269 Signed-off-by: Doug Kearns Signed-off-by: Christian Brabandt --- diff --git a/runtime/syntax/generator/vim.vim.base b/runtime/syntax/generator/vim.vim.base index 6d67d7b93c..302eeb4e97 100644 --- a/runtime/syntax/generator/vim.vim.base +++ b/runtime/syntax/generator/vim.vim.base @@ -2,7 +2,7 @@ " Language: Vim script " Maintainer: Hirohito Higashi " Doug Kearns -" Last Change: 2024 Oct 08 +" Last Change: 2024 Dec 21 " Former Maintainer: Charles E. Campbell " DO NOT CHANGE DIRECTLY. @@ -316,8 +316,8 @@ syn match vimFuncSID contained "\<[sg]:" syn keyword vimFuncKey contained fu[nction] syn keyword vimDefKey contained def -syn region vimFuncParams contained matchgroup=Delimiter start="(" skip=+\n\s*\\\|\n\s*"\\ + end=")" skipwhite skipempty nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError contains=vimFuncParam,@vimContinue -syn region vimDefParams contained matchgroup=Delimiter start="(" end=")" skipwhite skipempty nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError contains=vimDefParam,vim9Comment,vimFuncParamEquals +syn region vimFuncParams contained matchgroup=Delimiter start="(" skip=+\n\s*\\\|\n\s*"\\ + end=")" skipwhite skipempty nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError contains=vimFuncParam,vimOperParen,@vimContinue +syn region vimDefParams contained matchgroup=Delimiter start="(" end=")" skipwhite skipempty nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError contains=vimDefParam,vim9Comment,vimFuncParamEquals,vimOperParen syn match vimFuncParam contained "\<\h\w*\>\|\.\.\." skipwhite nextgroup=vimFuncParamEquals syn match vimDefParam contained "\<\h\w*\>" skipwhite nextgroup=vimParamType,vimFuncParamEquals diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_02.dump b/runtime/syntax/testdir/dumps/vim_ex_def_02.dump index 2f7a150581..14cffbda09 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_def_02.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_def_02.dump @@ -17,4 +17,4 @@ |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 @75 |d+0#af5f00255&|e|f| +0#0000000&|<+0#e000e06&|S|I|D|>|F+0#0000000&|o@1|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@52 -@57|3|7|,|0|-|1| @7|3|0|%| +@57|3|7|,|0|-|1| @7|2|8|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_03.dump b/runtime/syntax/testdir/dumps/vim_ex_def_03.dump index 463d1da43d..6ba5f46f89 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_def_03.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_def_03.dump @@ -17,4 +17,4 @@ |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 @75 |d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)|:+0#0000000&| |v+0#00e0003&|o|i|d| +0#0000000&|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@49 -@57|5@1|,|3| @9|4|8|%| +@57|5@1|,|3| @9|4|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_04.dump b/runtime/syntax/testdir/dumps/vim_ex_def_04.dump index fec860f910..c26f6669b4 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_def_04.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_def_04.dump @@ -17,4 +17,4 @@ @75 |d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@65 |e+0#af5f00255&|n|d@1|e|f| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@55 -@57|7|3|,|0|-|1| @7|6|5|%| +@57|7|3|,|0|-|1| @7|6|2|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_05.dump b/runtime/syntax/testdir/dumps/vim_ex_def_05.dump index 8be9fd9d6f..931f9e7823 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_def_05.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_def_05.dump @@ -15,6 +15,6 @@ @4|z+0#00e0e07&|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&|=+0#af5f00255&| +0#0000000&|"+0#e000002&|z|e|d|"|)+0#e000e06&| +0#0000000&@52 |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 @75 +|"+0#0000e05&| |I|s@1|u|e| |#|1|6|2|4|3| |(|v|i|m|s|c|r|i|p|t| |d|e|f| |p|a|r|a|m|e|t|e|r|s| |s|y|n|t|a|x| |h|i|g|h|l|i|g|h|t| |i|s| |w|r|o|n|g|)| +0#0000000&@7 @75 -|"+0#0000e05&| |c|o|m@1|e|n|t|s| +0#0000000&@64 -@57|9|0|,|0|-|1| @7|8|2|%| +@57|9|0|,|0|-|1| @7|7|8|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_06.dump b/runtime/syntax/testdir/dumps/vim_ex_def_06.dump index 7436a3994b..edb15c74be 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_def_06.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_def_06.dump @@ -1,9 +1,14 @@ -|"+0#0000e05#ffffff0| |c|o|m@1|e|n|t|s| +0#0000000&@64 +| +0&#ffffff0@74 +|d+0#af5f00255&|e|f| +0#0000000&|T|e|s|t|(+0#e000e06&|l+0#00e0e07&|i|n|e|s|:+0#0000000&| |l+0#00e0003&|i|s|t|<|n|u|m|b|e|r|>| +0#0000000&|=+0#af5f00255&| +0#0000000&|[|l+0#00e0e07&|i|n|e|(+0#e000e06&|'+0#e000002&|.|'|)+0#e000e06&|,+0#0000000&| |l+0#00e0e07&|i|n|e|(+0#e000e06&|'+0#e000002&|.|'|)+0#e000e06&|]+0#0000000&|)+0#e000e06&|:+0#0000000&| |v+0#00e0003&|o|i|d| +0#0000000&@14 +|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 +@75 +@75 +>"+0#0000e05&| |c|o|m@1|e|n|t|s| +0#0000000&@64 @75 |d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@65 | +0#0000e05&@1|#| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@51 @2|"+0#e000002&|u|s|e|l|e|s@1| |s|t|r|i|n|g|"| +0#0000000&@56 ->e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 +|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 @75 @75 |"+0#0000e05&| |l|e|a|d|i|n|g| |c|o|m@1|a|n|d| |s|e|p|a|r|a|t|o|r| +0#0000000&@47 @@ -12,9 +17,4 @@ |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 @75 @75 -|"+0#0000e05&| |c|o|m@1|a|n|d| |m|o|d|i|f|i|e|r|s| +0#0000000&@55 -@75 -|s+0#af5f00255&|i|l|e|n|t|!| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@57 -|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 -@75 -@57|1|0|8|,|1| @8|B|o|t| +@57|1|0|8|,|1| @8|9|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_07.dump b/runtime/syntax/testdir/dumps/vim_ex_def_07.dump new file mode 100644 index 0000000000..897c72bd82 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_def_07.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|"+0#0000e05&| |c|o|m@1|a|n|d| |m|o|d|i|f|i|e|r|s| +0#0000000&@55 +@75 +|s+0#af5f00255&|i|l|e|n|t|!| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@57 +|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68 +> @74 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|1|2|6|,|0|-|1| @6|B|o|t| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_03.dump b/runtime/syntax/testdir/dumps/vim_ex_function_03.dump index 9c4e80bc8c..8db514c816 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_function_03.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_function_03.dump @@ -17,4 +17,4 @@ @75 |f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|f|o@1|#|b|a|r|#|F|o@1|(+0#e000e06&|)| +0#0000000&@52 @2|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|4+0#e000002&|2| +0#0000000&@63 -@57|5@1|,|1| @9|2|8|%| +@57|5@1|,|1| @9|2|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_04.dump b/runtime/syntax/testdir/dumps/vim_ex_function_04.dump index 16b36cf6ee..cf2287bc9e 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_function_04.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_function_04.dump @@ -17,4 +17,4 @@ |f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&|r+0#e000e06&|a|n|g|e| +0#0000000&@54 @2|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|4+0#e000002&|2| +0#0000000&@63 |e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63 -@57|7|3|,|1| @9|3|8|%| +@57|7|3|,|1| @9|3|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_05.dump b/runtime/syntax/testdir/dumps/vim_ex_function_05.dump index 2cd4ce1588..a7530754d4 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_function_05.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_function_05.dump @@ -17,4 +17,4 @@ |e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63 @75 |f+0#af5f00255&|u|n|c|t|i|o|n|!| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&|r+0#e000e06&|a|n|g|e| +0#0000000&@53 -@57|9|1|,|0|-|1| @7|4|8|%| +@57|9|1|,|0|-|1| @7|4|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_06.dump b/runtime/syntax/testdir/dumps/vim_ex_function_06.dump index aeae2a2d2f..06ff65673b 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_function_06.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_function_06.dump @@ -17,4 +17,4 @@ |f+0#af5f00255&|u|n|c|t|i|o|n|!| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&|r+0#e000e06&|a|n|g|e| +0#0000000&|a+0#e000e06&|b|o|r|t| +0#0000000&|d+0#e000e06&|i|c|t| +0#0000000&|c+0#e000e06&|l|o|s|u|r|e| +0#0000000&@34 @2|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|4+0#e000002&|2| +0#0000000&@63 |e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63 -@57|1|0|9|,|3| @8|5|8|%| +@57|1|0|9|,|3| @8|5|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_07.dump b/runtime/syntax/testdir/dumps/vim_ex_function_07.dump index 06518a7e8d..447f144667 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_function_07.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_function_07.dump @@ -17,4 +17,4 @@ |e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@53 @75 @75 -@57|1|2|7|,|1| @8|6|9|%| +@57|1|2|7|,|1| @8|6|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_08.dump b/runtime/syntax/testdir/dumps/vim_ex_function_08.dump index 2bfa301684..c9a2d06be5 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_function_08.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_function_08.dump @@ -17,4 +17,4 @@ @2|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|4+0#e000002&|2| +0#0000000&@63 |e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63 @75 -@57|1|4|5|,|1| @8|7|9|%| +@57|1|4|5|,|1| @8|7@1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_09.dump b/runtime/syntax/testdir/dumps/vim_ex_function_09.dump index 0445f2083f..8a5019d50c 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_function_09.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_function_09.dump @@ -6,15 +6,15 @@ @2>r+0#af5f00255&|e|t|u|r|n| +0#0000000&|4+0#e000002&|2| +0#0000000&@63 |e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63 @75 +|"+0#0000e05&| |I|s@1|u|e| |#|1|6|2|4|3| |(|v|i|m|s|c|r|i|p|t| |d|e|f| |p|a|r|a|m|e|t|e|r|s| |s|y|n|t|a|x| |h|i|g|h|l|i|g|h|t| |i|s| |w|r|o|n|g|)| +0#0000000&@7 +@75 +|f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|T|e|s|t|(+0#e000e06&|l+0#00e0e07&|i|n|e|s| +0#0000000&|=+0#af5f00255&| +0#0000000&|[|l+0#00e0e07&|i|n|e|(+0#e000e06&|'+0#e000002&|.|'|)+0#e000e06&|,+0#0000000&| |l+0#00e0e07&|i|n|e|(+0#e000e06&|'+0#e000002&|.|'|)+0#e000e06&|]+0#0000000&|)+0#e000e06&| +0#0000000&@29 +|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63 +@75 @75 |"+0#0000e05&| |c|o|m@1|e|n|t|s| +0#0000000&@64 @75 |f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@60 @2|"+0#0000e05&| |L|e|g|a|c|y|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| +0#0000000&@49 @2|#| |4+0#e000002&|2| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@58 -@2|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|4+0#e000002&|2| +0#0000000&@63 -|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63 -@75 -@75 -|"+0#0000e05&| |c|o|m@1|a|n|d| |m|o|d|i|f|i|e|r|s| +0#0000000&@55 -@57|1|6|3|,|3| @8|8|9|%| +@57|1|6|3|,|3| @8|8|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_10.dump b/runtime/syntax/testdir/dumps/vim_ex_function_10.dump index ce12189c44..b9ae9b1521 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_function_10.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_function_10.dump @@ -1,9 +1,14 @@ -|"+0#0000e05#ffffff0| |c|o|m@1|a|n|d| |m|o|d|i|f|i|e|r|s| +0#0000000&@55 +| +0&#ffffff0@1|#| |4+0#e000002&|2| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@58 +@2|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|4+0#e000002&|2| +0#0000000&@63 +|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63 +@75 +@75 +>"+0#0000e05&| |c|o|m@1|a|n|d| |m|o|d|i|f|i|e|r|s| +0#0000000&@55 @75 |s+0#af5f00255&|i|l|e|n|t|!| +0#0000000&|f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@52 |e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@63 @75 -> @74 +@75 |"+0#0000e05&| |l|e|a|d|i|n|g| |c|o|m@1|a|n|d| |s|e|p|a|r|a|t|o|r| +0#0000000&@47 @75 |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&||| |f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&@47 @@ -12,9 +17,4 @@ @75 |"+0#0000e05&| |d|e|l|e|t|e| |f|u|n|c|t|i|o|n| +0#0000000&@57 @75 -|d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n| +0#0000000&|F|o@1| @59 -|d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n| +0#0000000&|f|o@1|.+0#af5f00255&|b+0#0000000&|a|r| @55 -|d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n|!| +0#0000000&|F|o@1| @58 -|d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n| +0#0000000&|f|o@1|.+0#af5f00255&|b+0#0000000&|a|r| @55 -@75 -@57|1|8|1|,|0|-|1| @6|B|o|t| +@57|1|8|1|,|1| @8|9|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_11.dump b/runtime/syntax/testdir/dumps/vim_ex_function_11.dump new file mode 100644 index 0000000000..62f65b4462 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_function_11.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n| +0#0000000&|F|o@1| @59 +|d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n| +0#0000000&|f|o@1|.+0#af5f00255&|b+0#0000000&|a|r| @55 +|d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n|!| +0#0000000&|F|o@1| @58 +|d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n| +0#0000000&|f|o@1|.+0#af5f00255&|b+0#0000000&|a|r| @55 +> @74 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|1|9@1|,|0|-|1| @6|B|o|t| diff --git a/runtime/syntax/testdir/input/vim_ex_def.vim b/runtime/syntax/testdir/input/vim_ex_def.vim index 5b9e6ddd1d..d379d8f450 100644 --- a/runtime/syntax/testdir/input/vim_ex_def.vim +++ b/runtime/syntax/testdir/input/vim_ex_def.vim @@ -99,6 +99,11 @@ def Foo( z: string = "zed") enddef +" Issue #16243 (vimscript def parameters syntax highlight is wrong) + +def Test(lines: list = [line('.'), line('.')]): void +enddef + " comments diff --git a/runtime/syntax/testdir/input/vim_ex_function.vim b/runtime/syntax/testdir/input/vim_ex_function.vim index 7497ca88f7..1b781913b8 100644 --- a/runtime/syntax/testdir/input/vim_ex_function.vim +++ b/runtime/syntax/testdir/input/vim_ex_function.vim @@ -163,6 +163,11 @@ function Foo( return 42 endfunction +" Issue #16243 (vimscript def parameters syntax highlight is wrong) + +function Test(lines = [line('.'), line('.')]) +endfunction + " comments diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index bcd4124f9f..d0295c3ced 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -2,7 +2,7 @@ " Language: Vim script " Maintainer: Hirohito Higashi " Doug Kearns -" Last Change: 2024 Dec 17 +" Last Change: 2024 Dec 21 " Former Maintainer: Charles E. Campbell " DO NOT CHANGE DIRECTLY. @@ -354,8 +354,8 @@ syn match vimFuncSID contained "\<[sg]:" syn keyword vimFuncKey contained fu[nction] syn keyword vimDefKey contained def -syn region vimFuncParams contained matchgroup=Delimiter start="(" skip=+\n\s*\\\|\n\s*"\\ + end=")" skipwhite skipempty nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError contains=vimFuncParam,@vimContinue -syn region vimDefParams contained matchgroup=Delimiter start="(" end=")" skipwhite skipempty nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError contains=vimDefParam,vim9Comment,vimFuncParamEquals +syn region vimFuncParams contained matchgroup=Delimiter start="(" skip=+\n\s*\\\|\n\s*"\\ + end=")" skipwhite skipempty nextgroup=vimFuncBody,vimFuncComment,vimEndfunction,vimFuncMod,vim9CommentError contains=vimFuncParam,vimOperParen,@vimContinue +syn region vimDefParams contained matchgroup=Delimiter start="(" end=")" skipwhite skipempty nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError contains=vimDefParam,vim9Comment,vimFuncParamEquals,vimOperParen syn match vimFuncParam contained "\<\h\w*\>\|\.\.\." skipwhite nextgroup=vimFuncParamEquals syn match vimDefParam contained "\<\h\w*\>" skipwhite nextgroup=vimParamType,vimFuncParamEquals