runtime(vim): Update base-syntax, match OR operator in :echo and :execute

Commit: 
https://github.com/vim/vim/commit/a9313716942dca456943f2df1bd4e8ecd32f85e5
Author: Doug Kearns <dougkea...@gmail.com>
Date:   Mon Jun 23 21:51:44 2025 +0200

    runtime(vim): Update base-syntax, match OR operator in :echo and :execute
    
    Don't match the OR operator in expressions as a trailing bar.
    
    closes: #17533
    
    Signed-off-by: Doug Kearns <dougkea...@gmail.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/syntax/generator/vim.vim.base 
b/runtime/syntax/generator/vim.vim.base
index a2ac5d2c8..edf8ab88a 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 <dougkea...@gmail.com>
-" Last Change:    2025 Jun 20
+" Last Change:    2025 Jun 23
 " Former Maintainer: Charles E. Campbell
 
 " DO NOT CHANGE DIRECTLY.
@@ -1223,8 +1223,12 @@ syn region       vimEcho
       \ start="\<echoc\%[onsole]\>"
       \ start="\<echon\>"
       \ start="\<echow\%[indow]\>"
-      \ skip=+\|\|
\s*\\|
\s*"\ +
-      \ matchgroup=vimCmdSep end="|" excludenl end="$" 
contains=@vimContinue,@vimExprList transparent
+      \ skip=+\|\|||\|
\s*\%(\\|["#]\ \)+
+      \ end="\ze|"
+      \ excludenl end="$"
+      \ nextgroup=vimCmdSep
+      \ contains=@vimContinue,@vimExprList
+      \ transparent
 
 syn match      vimEchohl       "\<echohl\=\>"  skipwhite 
nextgroup=vimGroup,vimHLGroup,vimEchohlNone
 syn case ignore
@@ -1233,7 +1237,15 @@ syn case match
 
 syn cluster    vimEcho contains=vimEcho,vimEchohl
 
-syn region     vimExecute      matchgroup=vimCommand start="\<exe\%[cute]\>" 
skip=+\|\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="|" excludenl end="$" 
contains=@vimContinue,@vimExprList transparent
+syn region     vimExecute
+      \ matchgroup=vimCommand
+      \ start="\<exe\%[cute]\>"
+      \ skip=+\|\|||\|
\s*\%(\\|["#]\ \)+
+      \ end="\ze|"
+      \ excludenl end="$"
+      \ nextgroup=vimCmdSep
+      \ contains=@vimContinue,@vimExprList
+      \ transparent
 
 " Filter: {{{2
 " ======
diff --git a/runtime/syntax/testdir/dumps/vim_ex_echo_00.dump 
b/runtime/syntax/testdir/dumps/vim_ex_echo_00.dump
index f42ea1da6..1a8bd425b 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_echo_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_echo_00.dump
@@ -1,5 +1,6 @@
 >"+0#0000e05#ffffff0| |V|i|m| |:|e|c|h|o| |c|o|m@1|a|n|d|s| +0#0000000&@54
 @75
+@75
 |e+0#af5f00255&|c|h|o| +0#0000000&@7|"+0#e000002&|A|n|s|w|e|r| |=| |"| 
+0#0000000&|4+0#e000002&|2| +0#0000000&@48
 |e+0#af5f00255&|c|h|o|n| +0#0000000&@6|"+0#e000002&|A|n|s|w|e|r| |=| |"| 
+0#0000000&|4+0#e000002&|2| +0#0000000&@48
 |e+0#af5f00255&|c|h|o|m|s|g| +0#0000000&@4|"+0#e000002&|A|n|s|w|e|r| |=| |"| 
+0#0000000&|4+0#e000002&|2| +0#0000000&@48
@@ -7,14 +8,13 @@
 |e+0#af5f00255&|c|h|o|e|r@1| +0#0000000&@4|"+0#e000002&|A|n|s|w|e|r| |=| |"| 
+0#0000000&|4+0#e000002&|2| +0#0000000&@48
 |e+0#af5f00255&|c|h|o|c|o|n|s|o|l|e| +0#0000000&|"+0#e000002&|A|n|s|w|e|r| |=| 
|"| +0#0000000&|4+0#e000002&|2| +0#0000000&@48
 @75
-|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|f|o|l@1|o|w|i|n|g| 
|c|o|m@1|a|n|d| |i|s| |:|||"| +0#0000000&||| ||| @40
 @75
-|e+0#af5f00255&|c|h|o|h|l| +0#0000000&|W+0#00e0003&|a|r|n|i|n|g|M|s|g| 
+0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|D|o|n|'|t| 
|p|a|n|i|c|!|"| +0#0000000&||| |e+0#af5f00255&|c|h|o|h|l| 
+0#0000000&|N+0#00e0003&|o|n|e| +0#0000000&@21
+|"+0#0000e05&| |t|r|a|i|l|i|n|g| |b|a|r| |v|s| |O|R| |o|p|e|r|a|t|o|r| 
+0#0000000&@45
 @75
-|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|A|n|s|w|e|r| |=| |"| 
+0#0000000&@58
-@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@59
-@6|\+0#e000e06&| +0#0000000&|4+0#e000002&|2| +0#0000000&@64
+|"+0#0000e05&| |O|R| |o|p|e|r|a|t|o|r| +0#0000000&@61
+|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| 
+0#0000000&||+0#af5f00255&@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@59
+|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| 
+0#0000000&||+0#af5f00255&@1| +0#0000000&@63
+@6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@63
 @75
-|e+0#af5f00255&|c|h|o| +0#0000000&@70
-@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|A|n|s|w|e|r| |=| |"| +0#0000000&@55
+|"+0#0000e05&| |f|o|l@1|o|w|i|n|g| |c|o|m@1|a|n|d| |i|s| |:||| +0#0000000&@49
 @57|1|,|1| @10|T|o|p| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_echo_01.dump 
b/runtime/syntax/testdir/dumps/vim_ex_echo_01.dump
index 21e7bd2ae..efc917064 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_echo_01.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_echo_01.dump
@@ -1,20 +1,20 @@
-|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|"+0#e000002&|A|n|s|w|e|r| |=| |"| 
+0#0000000&@58
-@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@59
-@6|\+0#e000e06&| +0#0000000&|4+0#e000002&|2| +0#0000000&@64
+|"+0#0000e05#ffffff0| |O|R| |o|p|e|r|a|t|o|r| +0#0000000&@61
+|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| 
+0#0000000&||+0#af5f00255&@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@59
+|e+0#af5f00255&|c|h|o| +0#0000000&|f+0#00e0e07&|o@1| 
+0#0000000&||+0#af5f00255&@1| +0#0000000&@63
+@6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@63
 @75
-|e+0#af5f00255&|c|h|o| +0#0000000&@70
-@6>\+0#e000e06&| +0#0000000&|"+0#e000002&|A|n|s|w|e|r| |=| |"| +0#0000000&@55
-@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@59
-@6|\+0#e000e06&| +0#0000000&|4+0#e000002&|2| +0#0000000&@64
+>"+0#0000e05&| |f|o|l@1|o|w|i|n|g| |c|o|m@1|a|n|d| |i|s| |:||| +0#0000000&@49
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&||| ||| @60
 @75
-|"+0#0000e05&| |:|e|c|h|o| |w|i|t|h|o|u|t| |{|e|x|p|r|}| +0#0000000&@52
-|e+0#af5f00255&|c|h|o||+0#0000000&| |e+0#af5f00255&|c|h|o| 
+0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@58
+|"+0#0000e05&| |i|n|v|a|l|i|d| |e|x|p|r|e|s@1|i|o|n| +0#0000000&@54
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| 
+0#0000000&||+0#af5f00255&@1| +0#0000000&@61
 @75
-|"+0#0000e05&| |t|r|a|i|l|i|n|g| |c|o|m@1|e|n|t| |n|e@1|d|s| ||| +0#0000000&@48
-|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&||| 
|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@52
+|e+0#af5f00255&|c|h|o|h|l| +0#0000000&|W+0#00e0003&|a|r|n|i|n|g|M|s|g| 
+0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|D|o|n|'|t| 
|p|a|n|i|c|!|"| +0#0000000&||| |e+0#af5f00255&|c|h|o|h|l| 
+0#0000000&|N+0#00e0003&|o|n|e| +0#0000000&@21
 @75
 @75
-|"+0#0000e05&| |I|s@1|u|e| |#|9@1|8|7| |(|p|a|r|e|n|t|h|e|s|i|s|e|d| 
|a|r|g|u|m|e|n|t| |-| |n|o|t| |a| |f|u|n|c|t|i|o|n| |c|a|l@1|)| +0#0000000&@14
+|"+0#0000e05&| |l|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n|s| +0#0000000&@54
 @75
-|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| 
+0#0000000&|{+0#e000e06&|'+0#e000002&|e|n|d|'|:+0#0000000&| 
|1+0#e000002&|2|3|}+0#e000e06&| +0#0000000&@52
-@57|1|9|,|7| @9|6|8|%| 
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|A|n|s|w|e|r| |=| |"| 
+0#0000000&@58
+@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@59
+@6|\+0#e000e06&| +0#0000000&|4+0#e000002&|2| +0#0000000&@64
+@57|1|9|,|1| @9|3@1|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_echo_02.dump 
b/runtime/syntax/testdir/dumps/vim_ex_echo_02.dump
index 47be35b4f..7cc91d41c 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_echo_02.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_echo_02.dump
@@ -1,20 +1,20 @@
-|l+0#af5f00255#ffffff0|e|t| +0#0000000&|f+0#00e0e07&|o@1| 
+0#0000000&|=+0#af5f00255&| 
+0#0000000&|{+0#e000e06&|'+0#e000002&|e|n|d|'|:+0#0000000&| 
|1+0#e000002&|2|3|}+0#e000e06&| +0#0000000&@52
-@75
-|i+0#af5f00255&|f| +0#0000000&|1+0#e000002&|2|3| +0#0000000&@68
-@8|e+0#af5f00255&|c|h|o| 
+0#0000000&|(+0#e000e06&|f+0#00e0e07&|o@1|.+0#af5f00255&|e+0#00e0e07&|n|d|)+0#e000e06&|
 +0#0000000&@52
-|e+0#af5f00255&|l|s|e| +0#0000000&@70
-@8>e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|b|a|r|'| +0#0000000&@56
-|e+0#af5f00255&|n|d|i|f| +0#0000000&@69
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|3|7|,|2|-|9| @7|B|o|t| 
+| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|4+0#e000002&|2| +0#0000000&@64
+@75
+|e+0#af5f00255&|c|h|o| +0#0000000&@70
+@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|A|n|s|w|e|r| |=| |"| +0#0000000&@55
+@5|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@59
+@6>\+0#e000e06&| +0#0000000&|4+0#e000002&|2| +0#0000000&@64
+@75
+@75
+|"+0#0000e05&| |t|r|a|i|l|i|n|g| |b|a|r| |a|n|d| |c|o|m@1|e|n|t|s| 
+0#0000000&@47
+@75
+|"+0#0000e05&| |:|e|c|h|o| |w|i|t|h|o|u|t| |{|e|x|p|r|}| +0#0000000&@52
+|e+0#af5f00255&|c|h|o||+0#0000000&| |e+0#af5f00255&|c|h|o| 
+0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@58
+@75
+|"+0#0000e05&| |t|r|a|i|l|i|n|g| |c|o|m@1|e|n|t| |n|e@1|d|s| ||| +0#0000000&@48
+|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&||| 
|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@52
+@75
+@75
+|"+0#0000e05&| |I|s@1|u|e| |#|9@1|8|7| |(|p|a|r|e|n|t|h|e|s|i|s|e|d| 
|a|r|g|u|m|e|n|t| |-| |n|o|t| |a| |f|u|n|c|t|i|o|n| |c|a|l@1|)| +0#0000000&@14
+@75
+@57|3|7|,|7| @9|7|9|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_echo_03.dump 
b/runtime/syntax/testdir/dumps/vim_ex_echo_03.dump
new file mode 100644
index 000000000..239a31dfa
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_echo_03.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| 
+0#0000000&|{+0#e000e06&|'+0#e000002&|e|n|d|'|:+0#0000000&| 
|1+0#e000002&|2|3|}+0#e000e06&| +0#0000000&@52
+@75
+|i+0#af5f00255&|f| +0#0000000&|1+0#e000002&|2|3| +0#0000000&@68
+@8|e+0#af5f00255&|c|h|o| 
+0#0000000&|(+0#e000e06&|f+0#00e0e07&|o@1|.+0#af5f00255&|e+0#00e0e07&|n|d|)+0#e000e06&|
 +0#0000000&@52
+>e+0#af5f00255&|l|s|e| +0#0000000&@70
+@8|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|b|a|r|'| +0#0000000&@56
+|e+0#af5f00255&|n|d|i|f| +0#0000000&@69
+@75
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|5@1|,|1| @9|B|o|t| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_execute_00.dump 
b/runtime/syntax/testdir/dumps/vim_ex_execute_00.dump
index 55d88afae..e5c53af92 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_execute_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_execute_00.dump
@@ -1,5 +1,6 @@
 >"+0#0000e05#ffffff0| |V|i|m| |:|e|x|e|c|u|t|e| |c|o|m@1|a|n|d| +0#0000000&@52
 @75
+@75
 |"+0#0000e05&| |:|h|e|l|p| |:|e|x|e|c|u|t|e| +0#0000000&@58
 @75
 |e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|"+0#e000002&|b|u|f@1|e|r|"| 
+0#0000000&|n+0#00e0e07&|e|x|t|b|u|f| +0#0000000&@50
@@ -15,6 +16,5 @@
 |e+0#af5f00255&|n|d|i|f| +0#0000000&@69
 |e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|'+0#e000002&|w|h|i|l|e| |i| |<| |5| 
||| |e|c|h|o| |i| ||| |l|e|t| |i| |=| |i| |+| |1| ||| |e|n|d|w|h|i|l|e|'| 
+0#0000000&@17
 @75
-|"+0#0000e05&| |f|o|l@1|o|w|i|n|g| |c|o|m@1|a|n|d| |i|s| |:|||"| +0#0000000&@48
-|e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|"+0#e000002&|c|a|l@1| |F|o@1|(|)|"| 
+0#0000000&||| ||| @50
+@75
 @57|1|,|1| @10|T|o|p| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_execute_01.dump 
b/runtime/syntax/testdir/dumps/vim_ex_execute_01.dump
index 5330ff3de..733afebc6 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_execute_01.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_execute_01.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0|e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@65
+| +0&#ffffff0@1|e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|t|e|s|t|"| 
+0#0000000&@61
+@1|e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@65
 |e+0#af5f00255&|n|d|i|f| +0#0000000&@69
 |e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|'+0#e000002&|w|h|i|l|e| |i| |<| |5| 
||| |e|c|h|o| |i| ||| |l|e|t| |i| |=| |i| |+| |1| ||| |e|n|d|w|h|i|l|e|'| 
+0#0000000&@17
 @75
-|"+0#0000e05&| |f|o|l@1|o|w|i|n|g| |c|o|m@1|a|n|d| |i|s| |:|||"| +0#0000000&@48
->e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|"+0#e000002&|c|a|l@1| |F|o@1|(|)|"| 
+0#0000000&||| ||| @50
+> @74
+|"+0#0000e05&| |t|r|a|i|l|i|n|g| |b|a|r| |v|s| |O|R| |o|p|e|r|a|t|o|r| 
+0#0000000&@45
 @75
-|e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|"+0#e000002&|c|a|l@1|"| +0#0000000&@60
-@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
-@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|F|o@1|(|)|"| +0#0000000&@59
+|"+0#0000e05&| |O|R| |o|p|e|r|a|t|o|r| +0#0000000&@61
+|e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|f+0#00e0e07&|o@1| 
+0#0000000&||+0#af5f00255&@1| +0#0000000&|b+0#00e0e07&|a|r| 
+0#0000000&|?+0#af5f00255&| +0#0000000&|"+0#e000002&|F|o@1|"| 
+0#0000000&|:+0#af5f00255&| +0#0000000&|"+0#e000002&|N|o|t|F|o@1|"| 
+0#0000000&@37
+|e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|f+0#00e0e07&|o@1| 
+0#0000000&||+0#af5f00255&@1| +0#0000000&@60
+@6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|?+0#af5f00255&| 
+0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&|:+0#af5f00255&| 
+0#0000000&|"+0#e000002&|N|o|t|F|o@1|"| +0#0000000&@44
 @75
-|e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&@67
-@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|c|a|l@1|"| +0#0000000&@60
-@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
-@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|F|o@1|(|)|"| +0#0000000&@59
+|"+0#0000e05&| |f|o|l@1|o|w|i|n|g| |c|o|m@1|a|n|d| |i|s| |:|||"| +0#0000000&@48
+|e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&||| 
||| @57
 @75
-|"+0#0000e05&| |:|e|x|e|c|u|t|e| |w|i|t|h|o|u|t| |{|e|x|p|r|}| +0#0000000&@49
-|e+0#af5f00255&|x|e|c|u|t|e||+0#0000000&| |e+0#af5f00255&|c|h|o| 
+0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@55
+|"+0#0000e05&| |i|n|v|a|l|i|d| |e|x|p|r|e|s@1|i|o|n| +0#0000000&@54
+|e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|"+0#e000002&|F|o@1|"| 
+0#0000000&||+0#af5f00255&@1| +0#0000000&@58
 @75
-@57|1|9|,|1| @9|5|9|%| 
+@57|1|9|,|0|-|1| @7|3|1|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_execute_02.dump 
b/runtime/syntax/testdir/dumps/vim_ex_execute_02.dump
index fbc1fea6a..3926f2b2c 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_execute_02.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_execute_02.dump
@@ -1,20 +1,20 @@
 | +0&#ffffff0@74
-|"+0#0000e05&| |t|r|a|i|l|i|n|g| |c|o|m@1|e|n|t| |n|e@1|d|s| ||| +0#0000000&@48
-|e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|"+0#e000002&|f|o@1|"| +0#0000000&||| 
|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@49
 @75
+|"+0#0000e05&| |l|i|n|e| |c|o|n|t|i|n|u|a|t|i|o|n|s| +0#0000000&@54
 @75
->"+0#0000e05&| |I|s@1|u|e| |#|9@1|8|7| |(|p|a|r|e|n|t|h|e|s|i|s|e|d| 
|a|r|g|u|m|e|n|t| |-| |n|o|t| |a| |f|u|n|c|t|i|o|n| |c|a|l@1|)| +0#0000000&@14
+|e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|"+0#e000002&|c|a|l@1|"| +0#0000000&@60
+@6>"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|F|o@1|(|)|"| +0#0000000&@59
 @75
-|"+0#0000e05&| +0#0000000&|F+0#0000001#ffff4012|I|X|M|E|:+0#e000e06#ffffff0| 
+0#0000e05&|e|x|e|c|u|t|e| |i|s| |e|x| |c|o|m@1|a|n|d| |n|o|t| |b|u|i|l|t|i|n| 
|f|u|n|c|t|i|o|n| +0#0000000&@23
-|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| 
+0#0000000&|{+0#e000e06&|'+0#e000002&|a|r|g|'|:+0#0000000&| 
|"+0#e000002&|c|a|l@1| |F|o@1|(|)|"|}+0#e000e06&| +0#0000000&@43
-|e+0#00e0e07&|x|e|c|u|t|e| 
+0#0000000&|(+0#e000e06&|f+0#00e0e07&|o@1|.+0#af5f00255&|a+0#00e0e07&|r|g|)+0#e000e06&|
 +0#0000000&@57
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|3|7|,|1| @9|B|o|t| 
+|e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&@67
+@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|c|a|l@1|"| +0#0000000&@60
+@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
+@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|F|o@1|(|)|"| +0#0000000&@59
+@75
+@75
+|"+0#0000e05&| |t|r|a|i|l|i|n|g| |b|a|r| |a|n|d| |c|o|m@1|e|n|t|s| 
+0#0000000&@47
+@75
+|"+0#0000e05&| |:|e|x|e|c|u|t|e| |w|i|t|h|o|u|t| |{|e|x|p|r|}| +0#0000000&@49
+|e+0#af5f00255&|x|e|c|u|t|e||+0#0000000&| |e+0#af5f00255&|c|h|o| 
+0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@55
+@75
+@57|3|7|,|7| @9|7|5|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_execute_03.dump 
b/runtime/syntax/testdir/dumps/vim_ex_execute_03.dump
new file mode 100644
index 000000000..21796e0bf
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_execute_03.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|"+0#0000e05&| |t|r|a|i|l|i|n|g| |c|o|m@1|e|n|t| |n|e@1|d|s| ||| +0#0000000&@48
+|e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&||| 
|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@49
+@75
+@75
+>"+0#0000e05&| |I|s@1|u|e| |#|9@1|8|7| |(|p|a|r|e|n|t|h|e|s|i|s|e|d| 
|a|r|g|u|m|e|n|t| |-| |n|o|t| |a| |f|u|n|c|t|i|o|n| |c|a|l@1|)| +0#0000000&@14
+@75
+|"+0#0000e05&| +0#0000000&|F+0#0000001#ffff4012|I|X|M|E|:+0#e000e06#ffffff0| 
+0#0000e05&|e|x|e|c|u|t|e| |i|s| |e|x| |c|o|m@1|a|n|d| |n|o|t| |b|u|i|l|t|i|n| 
|f|u|n|c|t|i|o|n| +0#0000000&@23
+|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| 
+0#0000000&|{+0#e000e06&|'+0#e000002&|a|r|g|'|:+0#0000000&| 
|"+0#e000002&|c|a|l@1| |F|o@1|(|)|"|}+0#e000e06&| +0#0000000&@43
+|e+0#00e0e07&|x|e|c|u|t|e| 
+0#0000000&|(+0#e000e06&|f+0#00e0e07&|o@1|.+0#af5f00255&|a+0#00e0e07&|r|g|)+0#e000e06&|
 +0#0000000&@57
+@75
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|5@1|,|1| @9|B|o|t| 
diff --git a/runtime/syntax/testdir/input/vim_ex_echo.vim 
b/runtime/syntax/testdir/input/vim_ex_echo.vim
index df2bf5c97..bebd28229 100644
--- a/runtime/syntax/testdir/input/vim_ex_echo.vim
+++ b/runtime/syntax/testdir/input/vim_ex_echo.vim
@@ -1,5 +1,6 @@
 " Vim :echo commands
 
+
 echo        "Answer = " 42
 echon       "Answer = " 42
 echomsg     "Answer = " 42
@@ -7,10 +8,25 @@ echowindow  "Answer = " 42
 echoerr     "Answer = " 42
 echoconsole "Answer = " 42
 
-echo "following command is :|" | |
+
+" trailing bar vs OR operator
+
+" OR operator
+echo foo || bar
+echo foo ||
+      \ bar
+
+" following command is :|
+echo "Foo" | |
+
+" invalid expression
+echo "Foo" ||
 
 echohl WarningMsg | echo "Don't panic!" | echohl None
 
+
+" line continuations
+
 echo "Answer = "
      "\ comment
       \ 42
@@ -20,11 +36,14 @@ echo
      "\ comment
       \ 42
 
+
+" trailing bar and comments
+
 " :echo without {expr}
 echo| echo "Foo"
 
 " trailing comment needs |
-echo "foo" | " comment
+echo "Foo" | " comment
 
 
 " Issue #9987 (parenthesised argument - not a function call)
@@ -36,3 +55,4 @@ if 123
 else
        echo 'bar'
 endif
+
diff --git a/runtime/syntax/testdir/input/vim_ex_execute.vim 
b/runtime/syntax/testdir/input/vim_ex_execute.vim
index 2ec507e1c..f36f8a7d8 100644
--- a/runtime/syntax/testdir/input/vim_ex_execute.vim
+++ b/runtime/syntax/testdir/input/vim_ex_execute.vim
@@ -1,5 +1,6 @@
 " Vim :execute command
 
+
 " :help :execute
 
 execute "buffer" nextbuf
@@ -15,8 +16,22 @@ if 0
 endif
 execute 'while i < 5 | echo i | let i = i + 1 | endwhile'
 
+
+" trailing bar vs OR operator
+
+" OR operator
+execute foo || bar ? "Foo" : "NotFoo"
+execute foo ||
+      \ bar ? "Foo" : "NotFoo"
+
 " following command is :|"
-execute "call Foo()" | |
+execute "Foo" | |
+
+" invalid expression
+execute "Foo" ||
+
+
+" line continuations
 
 execute "call"
       "\ comment
@@ -27,11 +42,14 @@ execute
       "\ comment
       \ "Foo()"
 
+
+" trailing bar and comments
+
 " :execute without {expr}
 execute| echo "Foo"
 
 " trailing comment needs |
-execute "foo" | " comment
+execute "Foo" | " comment
 
 
 " Issue #9987 (parenthesised argument - not a function call)
@@ -39,3 +57,4 @@ execute "foo" | " comment
 " FIXME: execute is ex command not builtin function
 let foo = {'arg': "call Foo()"}
 execute (foo.arg)
+
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 0021b7433..6b91ce7ca 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 <dougkea...@gmail.com>
-" Last Change:    2025 Jun 20
+" Last Change:    2025 Jun 23
 " Former Maintainer: Charles E. Campbell
 
 " DO NOT CHANGE DIRECTLY.
@@ -1280,8 +1280,12 @@ syn region       vimEcho
       \ start="\<echoc\%[onsole]\>"
       \ start="\<echon\>"
       \ start="\<echow\%[indow]\>"
-      \ skip=+\|\|
\s*\\|
\s*"\ +
-      \ matchgroup=vimCmdSep end="|" excludenl end="$" 
contains=@vimContinue,@vimExprList transparent
+      \ skip=+\|\|||\|
\s*\%(\\|["#]\ \)+
+      \ end="\ze|"
+      \ excludenl end="$"
+      \ nextgroup=vimCmdSep
+      \ contains=@vimContinue,@vimExprList
+      \ transparent
 
 syn match      vimEchohl       "\<echohl\=\>"  skipwhite 
nextgroup=vimGroup,vimHLGroup,vimEchohlNone
 syn case ignore
@@ -1290,7 +1294,15 @@ syn case match
 
 syn cluster    vimEcho contains=vimEcho,vimEchohl
 
-syn region     vimExecute      matchgroup=vimCommand start="\<exe\%[cute]\>" 
skip=+\|\|
\s*\\|
\s*"\ + matchgroup=vimCmdSep end="|" excludenl end="$" 
contains=@vimContinue,@vimExprList transparent
+syn region     vimExecute
+      \ matchgroup=vimCommand
+      \ start="\<exe\%[cute]\>"
+      \ skip=+\|\|||\|
\s*\%(\\|["#]\ \)+
+      \ end="\ze|"
+      \ excludenl end="$"
+      \ nextgroup=vimCmdSep
+      \ contains=@vimContinue,@vimExprList
+      \ transparent
 
 " Filter: {{{2
 " ======

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1uTnKl-00GcKX-Ug%40256bit.org.

Raspunde prin e-mail lui