From 3993cd619a8148c4942d7b9d418af73909403a87 Mon Sep 17 00:00:00 2001 From: Doug Kearns Date: Mon, 2 Jun 2025 19:31:10 +0200 Subject: [PATCH] runtime(vim): Update base-syntax, bug fixes - Contain :profdel arguments. - Fix string highlighting immediately after lambda -> operators. Reported by Aliaksei Budavei. closes: #17427 Signed-off-by: Doug Kearns Signed-off-by: Christian Brabandt --- runtime/syntax/generator/vim.vim.base | 12 +++---- .../testdir/dumps/vim_ex_function_02.dump | 2 +- .../testdir/dumps/vim_ex_function_03.dump | 2 +- .../testdir/dumps/vim_ex_function_04.dump | 2 +- .../testdir/dumps/vim_ex_function_05.dump | 2 +- .../testdir/dumps/vim_ex_function_06.dump | 2 +- .../testdir/dumps/vim_ex_function_07.dump | 2 +- .../testdir/dumps/vim_ex_function_08.dump | 2 +- .../testdir/dumps/vim_ex_function_09.dump | 2 +- .../testdir/dumps/vim_ex_function_10.dump | 2 +- .../testdir/dumps/vim_ex_function_11.dump | 2 +- .../testdir/dumps/vim_ex_function_12.dump | 36 +++++++++---------- .../syntax/testdir/dumps/vim_lambda_02.dump | 2 +- .../syntax/testdir/dumps/vim_lambda_03.dump | 2 +- .../syntax/testdir/dumps/vim_lambda_04.dump | 2 +- .../syntax/testdir/dumps/vim_lambda_05.dump | 2 +- .../syntax/testdir/dumps/vim_lambda_06.dump | 2 +- .../syntax/testdir/dumps/vim_lambda_07.dump | 12 +++---- .../syntax/testdir/input/vim_ex_function.vim | 16 +++++++++ runtime/syntax/testdir/input/vim_lambda.vim | 6 ++++ runtime/syntax/vim.vim | 12 +++---- 21 files changed, 73 insertions(+), 51 deletions(-) diff --git a/runtime/syntax/generator/vim.vim.base b/runtime/syntax/generator/vim.vim.base index 3a3bd3c136..fa76c3ce90 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: 2025 Jun 01 +" Last Change: 2025 Jun 02 " Former Maintainer: Charles E. Campbell " DO NOT CHANGE DIRECTLY. @@ -818,8 +818,8 @@ syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\\%\ syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline syn match vimNotPatSep contained "\\\\" syn cluster vimStringGroup contains=vimEscape,vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell -syn region vimString oneline keepend matchgroup=vimString start=+[^a-zA-Z>\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+ nextgroup=vimSubscript contains=@vimStringGroup extend -syn region vimString oneline matchgroup=vimString start=+[^a-zA-Z>\\@]'+lc=1 end=+'+ nextgroup=vimSubscript contains=vimQuoteEscape extend +syn region vimString oneline keepend matchgroup=vimString start=+[^a-zA-Z\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+ nextgroup=vimSubscript contains=@vimStringGroup extend +syn region vimString oneline matchgroup=vimString start=+[^a-zA-Z\\@]'+lc=1 end=+'+ nextgroup=vimSubscript contains=vimQuoteEscape extend "syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup " see tst45.vim syn match vimEscape contained "\\." @@ -1354,9 +1354,9 @@ syn region vimProfilePattern contained \ skipwhite nextgroup=vimCmdSep,vimComment,vim9Comment syn match vimProfile "\" skipwhite nextgroup=vimProfileBang,vimProfileArg -syn keyword vimProfdelArg func skipwhite nextgroup=vimProfilePattern -syn keyword vimProfdelArg file skipwhite nextgroup=vimProfilePattern -syn keyword vimProfdelArg here skipwhite nextgroup=vimCmdSep,@vimComment +syn keyword vimProfdelArg contained func skipwhite nextgroup=vimProfilePattern +syn keyword vimProfdelArg contained file skipwhite nextgroup=vimProfilePattern +syn keyword vimProfdelArg contained here skipwhite nextgroup=vimCmdSep,@vimComment syn match vimProfdel "\" skipwhite nextgroup=vimProfdelArg " Redir: {{{2 diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_02.dump b/runtime/syntax/testdir/dumps/vim_ex_function_02.dump index 282c06c423..e4b5d6a566 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_function_02.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_function_02.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|3|7|,|0|-|1| @7|1|5|%| +@57|3|7|,|0|-|1| @7|1|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_03.dump b/runtime/syntax/testdir/dumps/vim_ex_function_03.dump index 8192288c85..94e2ea1b44 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|5|%| +@57|5@1|,|1| @9|2|3|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_04.dump b/runtime/syntax/testdir/dumps/vim_ex_function_04.dump index 486dfd84c7..2dbc75b859 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|4|%| +@57|7|3|,|1| @9|3|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_05.dump b/runtime/syntax/testdir/dumps/vim_ex_function_05.dump index 4359d4e255..94f265a880 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|3|%| +@57|9|1|,|0|-|1| @7|4|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_06.dump b/runtime/syntax/testdir/dumps/vim_ex_function_06.dump index f4d96ac649..f771e63319 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|3|%| +@57|1|0|9|,|3| @8|4|9|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_07.dump b/runtime/syntax/testdir/dumps/vim_ex_function_07.dump index 160f9ad9bf..325c9434fb 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|2|%| +@57|1|2|7|,|1| @8|5|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_08.dump b/runtime/syntax/testdir/dumps/vim_ex_function_08.dump index 98e02cfd13..9239196fb1 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|1|%| +@57|1|4|5|,|1| @8|6@1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_09.dump b/runtime/syntax/testdir/dumps/vim_ex_function_09.dump index 60ea6cb364..717113784b 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_function_09.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_function_09.dump @@ -17,4 +17,4 @@ @2|e+0#af5f00255&|c|h|o| +0#0000000&|a+0#00e0e07&|:|0@2| +0#0000000&@62 @2|e+0#af5f00255&|c|h|o| +0#0000000&|a+0#00e0e07&|:|0| +0#0000000&@64 @2|e+0#af5f00255&|c|h|o| +0#0000000&|a+0#00e0e07&|:|1| +0#0000000&|a+0#00e0e07&|:|2| +0#0000000&|a+0#00e0e07&|:|3| +0#0000000&|a+0#00e0e07&|:|4| +0#0000000&|a+0#00e0e07&|:|5| +0#0000000&|a+0#00e0e07&|:|6| +0#0000000&|a+0#00e0e07&|:|7| +0#0000000&|a+0#00e0e07&|:|8| +0#0000000&|a+0#00e0e07&|:|9| +0#0000000&|a+0#00e0e07&|:|1|0| +0#0000000&|a+0#00e0e07&|:|1@1| +0#0000000&|a+0#00e0e07&|:|1|2| +0#0000000&|a+0#00e0e07&|:|1|3| +0#0000000&|a+0#00e0e07&|:|1|4| +0#0000000&|a+0#00e0e07&|:|1|5|@+0#4040ff13&@2 -| +0#0000000&@56|1|6|3|,|3| @8|8|0|%| +| +0#0000000&@56|1|6|3|,|3| @8|7|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_10.dump b/runtime/syntax/testdir/dumps/vim_ex_function_10.dump index 9e08fcdb62..9a7eff4516 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_function_10.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_function_10.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|8|0|,|1| @8|8|9|%| +@57|1|8|0|,|1| @8|8|2|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_11.dump b/runtime/syntax/testdir/dumps/vim_ex_function_11.dump index 868930304f..98e0c79f7d 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_function_11.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_function_11.dump @@ -17,4 +17,4 @@ |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#00e0e07&|a|r| +0#0000000&@55 |d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n|!| +0#0000000&|F|o@1| @58 -@57|1|9|8|,|1| @8|9|8|%| +@57|1|9|8|,|1| @8|9|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_function_12.dump b/runtime/syntax/testdir/dumps/vim_ex_function_12.dump index d5e26ae2a8..2e431aa072 100644 --- a/runtime/syntax/testdir/dumps/vim_ex_function_12.dump +++ b/runtime/syntax/testdir/dumps/vim_ex_function_12.dump @@ -1,20 +1,20 @@ |d+0#af5f00255#ffffff0|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#00e0e07&|a|r| +0#0000000&@55 -> @74 -|~+0#4040ff13&| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -| +0#0000000&@56|2|1|3|,|0|-|1| @6|B|o|t| +@75 +@75 +|"+0#0000e05&| |I|s@1|u|e| |h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|v|i|m|/|v|i|m|/|p|u|l@1|/|1|7|4|2|0|#|i|s@1|u|e|c|o|m@1|e|n|t|-|2|9|2|7@1|9|8|6|8|7| +0#0000000&@5 +>"+0#0000e05&| |(|a|r|g| |n|a|m|e|d| |/|f|u|%|\|[|n|c|t|i|o|n|]|/|)| +0#0000000&@46 +@75 +|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@67 +|s+0#af5f00255&|i|l|e|n|t|!| +0#0000000&|d+0#af5f00255&|e|l|f|u|n|c|!| +0#0000000&|f+0#af5f00255&|u|n|c| +0#0000000&@53 +@75 +@75 +|"+0#0000e05&| |I|s@1|u|e| |h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|v|i|m|/|v|i|m|/|p|u|l@1|/|1|7|4|2|0|#|i|s@1|u|e|c|o|m@1|e|n|t|-|2|9|2|7@1|9|8|6|8|7| +0#0000000&@5 +|"+0#0000e05&| |(|f|u|n|c|t|i|o|n| |n|a|m|e|d| |/|s|:|f|u|%|\|[|n|c|t|i|o|n|]|/|)| +0#0000000&@39 +@75 +|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@67 +|f+0#af5f00255&|u|n|c|!| +0#0000000&|s+0#e000e06&|:|f+0#af5f00255&|u|n|c|(+0#e000e06&|_+0#00e0e07&|,+0#0000000&| |f+0#00e0e07&|u|n|c|)+0#e000e06&| +0#0000000&@53 +@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|a+0#00e0e07&|:|f|u|n|c| +0#0000000&@57 +|e+0#af5f00255&|n|d|f|u|n|c| +0#0000000&@67 +@75 +@57|2|1|6|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/dumps/vim_lambda_02.dump b/runtime/syntax/testdir/dumps/vim_lambda_02.dump index 99cf668a67..f930e1dfe4 100644 --- a/runtime/syntax/testdir/dumps/vim_lambda_02.dump +++ b/runtime/syntax/testdir/dumps/vim_lambda_02.dump @@ -17,4 +17,4 @@ @6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58 @6|\+0#e000e06&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@62 @6|\+0#e000e06&| +0#0000000&|}+0#0000001#ffff4012| +0#0000000#ffffff0@65 -@57|3|7|,|7| @9|2|8|%| +@57|3|7|,|7| @9|2|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_lambda_03.dump b/runtime/syntax/testdir/dumps/vim_lambda_03.dump index 194b85ace1..297288d21b 100644 --- a/runtime/syntax/testdir/dumps/vim_lambda_03.dump +++ b/runtime/syntax/testdir/dumps/vim_lambda_03.dump @@ -17,4 +17,4 @@ @6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58 @6|\+0#e000e06&| +0#0000000&|z+0#00e0e07&| +0#0000000&@65 @6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58 -@57|5@1|,|7| @9|4@1|%| +@57|5@1|,|7| @9|4|2|%| diff --git a/runtime/syntax/testdir/dumps/vim_lambda_04.dump b/runtime/syntax/testdir/dumps/vim_lambda_04.dump index 2769f521df..38b3ad0205 100644 --- a/runtime/syntax/testdir/dumps/vim_lambda_04.dump +++ b/runtime/syntax/testdir/dumps/vim_lambda_04.dump @@ -17,4 +17,4 @@ @75 |l+0#af5f00255&|e|t| +0#0000000&|F+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|{+0#0000001#ffff4012|-|>| +0#0000000#ffffff0|#+0#e000e06&|{| +0#0000000&@58 @6|\+0#e000e06&| +0#0000000&|a+0#00e0e07&|:| +0#0000000&|4+0#e000002&|2|,+0#0000000&| @60 -@57|7|3|,|7| @9|6|0|%| +@57|7|3|,|7| @9|5|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_lambda_05.dump b/runtime/syntax/testdir/dumps/vim_lambda_05.dump index 74778ce75c..b588e334f3 100644 --- a/runtime/syntax/testdir/dumps/vim_lambda_05.dump +++ b/runtime/syntax/testdir/dumps/vim_lambda_05.dump @@ -17,4 +17,4 @@ @6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|:| +0#0000000&|8+0#e000002&|3| +0#0000000&@61 @6|\+0#e000e06&|}|}+0#0000001#ffff4012@1| +0#0000000#ffffff0@64 @75 -@57|9|1|,|7| @9|7@1|%| +@57|9|1|,|7| @9|7|3|%| diff --git a/runtime/syntax/testdir/dumps/vim_lambda_06.dump b/runtime/syntax/testdir/dumps/vim_lambda_06.dump index 0cd993165d..5e9b19e770 100644 --- a/runtime/syntax/testdir/dumps/vim_lambda_06.dump +++ b/runtime/syntax/testdir/dumps/vim_lambda_06.dump @@ -17,4 +17,4 @@ @75 |:|e+0#af5f00255&|c|h|o| +0#0000000&|m+0#00e0e07&|a|p|(+0#e000e06&|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&|,+0#0000000&| |{+0#0000001#ffff4012|i+0#00e0e07#ffffff0|d|x|,+0#0000000&| |v+0#00e0e07&|a|l| +0#0000000&|-+0#0000001#ffff4012|>| +0#0000000#ffffff0|v+0#00e0e07&|a|l| +0#0000000&|++0#af5f00255&| +0#0000000&|1+0#e000002&|}+0#0000001#ffff4012|)+0#e000e06#ffffff0| +0#0000000&@31 |"+0#0000e05&| |[|2|,| |3|,| |4|]| @1| +0#0000000&@61 -@57|1|0|9|,|1| @8|9|3|%| +@57|1|0|9|,|1| @8|8@1|%| diff --git a/runtime/syntax/testdir/dumps/vim_lambda_07.dump b/runtime/syntax/testdir/dumps/vim_lambda_07.dump index c1e29d7521..a8f4162b54 100644 --- a/runtime/syntax/testdir/dumps/vim_lambda_07.dump +++ b/runtime/syntax/testdir/dumps/vim_lambda_07.dump @@ -6,15 +6,15 @@ @16>\+0#e000e06&| +0#0000000&|{+0#0000001#ffff4012|-|>| +0#0000000#ffffff0|e+0#00e0e07&|x|e|c|u|t|e|(+0#e000e06&|"+0#e000002&|e|c|h|o| |'|H|a|n|d|l|e|r| |c|a|l@1|e|d|'|"|,+0#0000000&| |"+0#e000002&@1|)+0#e000e06&|}+0#0000001#ffff4012|,+0#0000000#ffffff0| @14 @16|\+0#e000e06&| +0#0000000&|{+0#e000e06&|'+0#e000002&|r|e|p|e|a|t|'|:+0#0000000&| |3+0#e000002&|}+0#e000e06&|)| +0#0000000&@42 @75 +@75 +|"+0#0000e05&| |I|s@1|u|e| |h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|v|i|m|/|v|i|m|/|p|u|l@1|/|1|7|4|2|0|#|i|s@1|u|e|c|o|m@1|e|n|t|-|2|9|2|7@1|9|8|6|8|7| +0#0000000&@5 +|"+0#0000e05&| |(|s|t|r|i|n|g| |i|m@1|e|d|i|a|t|e|l|y| |a|f|t|e|r| |-|>| |o|p|e|r|a|t|o|r|)| +0#0000000&@34 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|u|n|c|,+0#0000000&| |_+0#00e0e07&|f|u|n|c|_|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|[+0#e000e06&|{+0#0000001#ffff4012|-|>|"+0#e000002#ffffff0|f|u|n|c|"|}+0#0000001#ffff4012|(+0#e000e06#ffffff0|)|,+0#0000000&| |'+0#e000002&|f|u|n|c|'|]+0#e000e06&| +0#0000000&@31 +@75 |~+0#4040ff13&| @73 |~| @73 |~| @73 |~| @73 |~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 | +0#0000000&@56|1|2|7|,|3|-|1|7| @5|B|o|t| diff --git a/runtime/syntax/testdir/input/vim_ex_function.vim b/runtime/syntax/testdir/input/vim_ex_function.vim index 95cf4586e1..dc11f390a3 100644 --- a/runtime/syntax/testdir/input/vim_ex_function.vim +++ b/runtime/syntax/testdir/input/vim_ex_function.vim @@ -211,3 +211,19 @@ delfunction foo.bar delfunction! Foo delfunction foo.bar + +" Issue https://github.com/vim/vim/pull/17420#issuecomment-2927798687 +" (arg named /fu%\[nction]/) + +" FIXME +silent! delfunc! func + + +" Issue https://github.com/vim/vim/pull/17420#issuecomment-2927798687 +" (function named /s:fu%\[nction]/) + +" FIXME +func! s:func(_, func) + return a:func +endfunc + diff --git a/runtime/syntax/testdir/input/vim_lambda.vim b/runtime/syntax/testdir/input/vim_lambda.vim index d08509c90b..47c194662e 100644 --- a/runtime/syntax/testdir/input/vim_lambda.vim +++ b/runtime/syntax/testdir/input/vim_lambda.vim @@ -127,3 +127,9 @@ let Foo = {-> {-> #{ \ {-> execute("echo 'Handler called'", "")}, \ {'repeat': 3}) + +" Issue https://github.com/vim/vim/pull/17420#issuecomment-2927798687 +" (string immediately after -> operator) + +let [func, _func_] = [{->"func"}(), 'func'] + diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index bf275964b5..6afcb0492c 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: 2025 Jun 01 +" Last Change: 2025 Jun 02 " Former Maintainer: Charles E. Campbell " DO NOT CHANGE DIRECTLY. @@ -873,8 +873,8 @@ syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\\%\ syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline syn match vimNotPatSep contained "\\\\" syn cluster vimStringGroup contains=vimEscape,vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell -syn region vimString oneline keepend matchgroup=vimString start=+[^a-zA-Z>\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+ nextgroup=vimSubscript contains=@vimStringGroup extend -syn region vimString oneline matchgroup=vimString start=+[^a-zA-Z>\\@]'+lc=1 end=+'+ nextgroup=vimSubscript contains=vimQuoteEscape extend +syn region vimString oneline keepend matchgroup=vimString start=+[^a-zA-Z\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+ nextgroup=vimSubscript contains=@vimStringGroup extend +syn region vimString oneline matchgroup=vimString start=+[^a-zA-Z\\@]'+lc=1 end=+'+ nextgroup=vimSubscript contains=vimQuoteEscape extend "syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup " see tst45.vim syn match vimEscape contained "\\." @@ -1415,9 +1415,9 @@ syn region vimProfilePattern contained \ skipwhite nextgroup=vimCmdSep,vimComment,vim9Comment syn match vimProfile "\" skipwhite nextgroup=vimProfileBang,vimProfileArg -syn keyword vimProfdelArg func skipwhite nextgroup=vimProfilePattern -syn keyword vimProfdelArg file skipwhite nextgroup=vimProfilePattern -syn keyword vimProfdelArg here skipwhite nextgroup=vimCmdSep,@vimComment +syn keyword vimProfdelArg contained func skipwhite nextgroup=vimProfilePattern +syn keyword vimProfdelArg contained file skipwhite nextgroup=vimProfilePattern +syn keyword vimProfdelArg contained here skipwhite nextgroup=vimCmdSep,@vimComment syn match vimProfdel "\" skipwhite nextgroup=vimProfdelArg " Redir: {{{2