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 <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/syntax/generator/vim.vim.base b/runtime/syntax/generator/vim.vim.base
index 6d67d7b..302eeb4 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 <h.east.727 ATMARK gmail.com>
" Doug Kearns <dougkearns@gmail.com>
-" Last Change: 2024 Oct 08
+" Last Change: 2024 Dec 21
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
@@ -316,8 +316,8 @@
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 2f7a150..14cffbd 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 463d1da..6ba5f46 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 fec860f..c26f666 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 8be9fd9..931f9e7 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 7436a39..edb15c7 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 0000000..897c72b
--- /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 9c4e80b..8db514c 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 16b36cf..cf2287b 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 2cd4ce1..a753075 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 aeae2a2..06ff656 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 06518a7..447f144 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 2bfa301..c9a2d06 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 0445f20..8a5019d 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 ce12189..b9ae9b1 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 0000000..62f65b4
--- /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 5b9e6dd..d379d8f 100644
--- a/runtime/syntax/testdir/input/vim_ex_def.vim
+++ b/runtime/syntax/testdir/input/vim_ex_def.vim
@@ -99,6 +99,11 @@
z: string = "zed")
enddef
+" Issue #16243 (vimscript def parameters syntax highlight is wrong)
+
+def Test(lines: list<number> = [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 7497ca8..1b78191 100644
--- a/runtime/syntax/testdir/input/vim_ex_function.vim
+++ b/runtime/syntax/testdir/input/vim_ex_function.vim
@@ -163,6 +163,11 @@
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 bcd4124..d0295c3 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -2,7 +2,7 @@
" Language: Vim script
" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
" Doug Kearns <dougkearns@gmail.com>
-" Last Change: 2024 Dec 17
+" Last Change: 2024 Dec 21
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
@@ -354,8 +354,8 @@
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