runtime(vim): Update base-syntax, match bare mark ranges

Commit: 
https://github.com/vim/vim/commit/dcff4973731f3016a66adaa6edd869221913f178
Author: Doug Kearns <dougkea...@gmail.com>
Date:   Sun Jun 22 18:47:49 2025 +0200

    runtime(vim): Update base-syntax, match bare mark ranges
    
    Remove unmatchable :normal {mark,register} matches. The arg to :normal
    is now handled separately and contained marks and registers are no
    longer matched.
    
    closes: #17571
    
    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 fabf808e1..a2ac5d2c8 100644
--- a/runtime/syntax/generator/vim.vim.base
+++ b/runtime/syntax/generator/vim.vim.base
@@ -949,18 +949,17 @@ syn match vimMarkArgError contained       "["^.(){}0-9]"
 syn cluster    vimMarkArg      contains=vimMarkArg,vimMarkArgError
 
 " Marks, Registers, Addresses, Filters: {{{2
+syn match      vimMark "'[a-zA-Z0-9]\ze\s*$"
+syn match      vimMark "'[[\]{}()<>'`"^.]\ze\s*$"
 syn match      vimMark "'[a-zA-Z0-9]\ze[-+,!]" 
nextgroup=vimFilter,vimMarkNumber,vimSubst1
-syn match      vimMark "'[[\]{}()<>]\ze[-+,!]" 
nextgroup=vimFilter,vimMarkNumber,vimSubst1
-syn match      vimMark ",\zs'[[\]{}()<>]\ze"   
nextgroup=vimFilter,vimMarkNumber,vimSubst1
+syn match      vimMark "'[[\]{}()<>'`"^.]\ze[-+,!]"    
nextgroup=vimFilter,vimMarkNumber,vimSubst1
+syn match      vimMark ",\zs'[[\]{}()<>'`"^.]" 
nextgroup=vimFilter,vimMarkNumber,vimSubst1
 syn match      vimMark "[!,:]\zs'[a-zA-Z0-9]"  
nextgroup=vimFilter,vimMarkNumber,vimSubst1
-syn match      vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" 
nextgroup=vimFilter,vimMarkNumber,vimSubst1
 syn match      vimMarkNumber   "[-+]\d\+"              contained 
contains=vimOper nextgroup=vimSubst1
 syn match      vimPlainMark contained  "'[a-zA-Z0-9]"
 syn match      vimRange        "[`'][a-zA-Z0-9],[`'][a-zA-Z0-9]"       
contains=vimMark        skipwhite nextgroup=vimFilter
 
 syn match      vimRegister     '[^,;[{:        
]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]'
-syn match      vimRegister     '\<norm\s\+\zs"[a-zA-Z0-9]'
-syn match      vimRegister     '\<normal\s\+\zs"[a-zA-Z0-9]'
 syn match      vimRegister     '@"'
 syn match      vimPlainRegister contained      '"[a-zA-Z0-9\-:.%#*+=]'
 syn match      vimLetRegister  contained       '@["0-9\-a-zA-Z:.%#=*+~_/]'
diff --git a/runtime/syntax/testdir/dumps/vim_ex_range_00.dump 
b/runtime/syntax/testdir/dumps/vim_ex_range_00.dump
index 2b0ad770e..ecc0c73c6 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_range_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_range_00.dump
@@ -1,20 +1,20 @@
 >"+0#0000e05#ffffff0| |E|x| |c|o|m@1|a|n|d| |r|a|n|g|e|s| +0#0000000&@55
 @75
+@75
 |'+0#e000002&|<|,+0#0000000&|'+0#e000002&|>|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@64
 |'+0#e000002&|(|,+0#0000000&|'+0#e000002&|)|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@64
 |'+0#e000002&|{|,+0#0000000&|'+0#e000002&|}|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@64
 |'+0#e000002&|[|,+0#0000000&|'+0#e000002&|]|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@64
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|,|1| @10|A|l@1| 
+@75
+|:|'+0#e000002&|<|,+0#0000000&|'+0#e000002&|>|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@63
+|:|'+0#e000002&|(|,+0#0000000&|'+0#e000002&|)|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@63
+|:|'+0#e000002&|{|,+0#0000000&|'+0#e000002&|}|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@63
+|:|'+0#e000002&|[|,+0#0000000&|'+0#e000002&|]|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@63
+@75
+|e+0#af5f00255&|c|h|o| +0#0000000&||| 
|'+0#e000002&|<|,+0#0000000&|'+0#e000002&|>|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@57
+|e+0#af5f00255&|c|h|o| +0#0000000&||| 
|'+0#e000002&|(|,+0#0000000&|'+0#e000002&|)|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@57
+|e+0#af5f00255&|c|h|o| +0#0000000&||| 
|'+0#e000002&|{|,+0#0000000&|'+0#e000002&|}|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@57
+|e+0#af5f00255&|c|h|o| +0#0000000&||| 
|'+0#e000002&|[|,+0#0000000&|'+0#e000002&|]|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@57
+@75
+|"+0#0000e05&| |b|a|r|e| |m|a|r|k| |r|a|n|g|e|s| +0#0000000&@56
+@57|1|,|1| @10|T|o|p| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_range_01.dump 
b/runtime/syntax/testdir/dumps/vim_ex_range_01.dump
new file mode 100644
index 000000000..76085289f
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_range_01.dump
@@ -0,0 +1,20 @@
+|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&||| 
|'+0#e000002&|<|,+0#0000000&|'+0#e000002&|>|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@57
+|e+0#af5f00255&|c|h|o| +0#0000000&||| 
|'+0#e000002&|(|,+0#0000000&|'+0#e000002&|)|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@57
+|e+0#af5f00255&|c|h|o| +0#0000000&||| 
|'+0#e000002&|{|,+0#0000000&|'+0#e000002&|}|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@57
+|e+0#af5f00255&|c|h|o| +0#0000000&||| 
|'+0#e000002&|[|,+0#0000000&|'+0#e000002&|]|p+0#af5f00255&|r|i|n|t| 
+0#0000000&@57
+@75
+>"+0#0000e05&| |b|a|r|e| |m|a|r|k| |r|a|n|g|e|s| +0#0000000&@56
+@75
+|'+0#e000002&|a| +0#0000000&@72
+|'+0#e000002&|k| +0#0000000&@72
+|'+0#e000002&|z| +0#0000000&@72
+|'+0#e000002&|A| +0#0000000&@72
+|'+0#e000002&|K| +0#0000000&@72
+|'+0#e000002&|Z| +0#0000000&@72
+|'+0#e000002&|0| +0#0000000&@72
+|'+0#e000002&|9| +0#0000000&@72
+|'+0#e000002&|[| +0#0000000&@72
+|'+0#e000002&|]| +0#0000000&@72
+|'+0#e000002&|{| +0#0000000&@72
+|'+0#e000002&|}| +0#0000000&@72
+@57|1|9|,|1| @9|1|8|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_range_02.dump 
b/runtime/syntax/testdir/dumps/vim_ex_range_02.dump
new file mode 100644
index 000000000..acfcf5431
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_range_02.dump
@@ -0,0 +1,20 @@
+|'+0#e000002#ffffff0|}| +0#0000000&@72
+|'+0#e000002&|(| +0#0000000&@72
+|'+0#e000002&|)| +0#0000000&@72
+|'+0#e000002&|<| +0#0000000&@72
+|'+0#e000002&|>| +0#0000000&@72
+>'+0#e000002&|`| +0#0000000&@72
+|'+0#e000002&@1| +0#0000000&@72
+|'+0#e000002&|"| +0#0000000&@72
+|'+0#e000002&|^| +0#0000000&@72
+|'+0#e000002&|.| +0#0000000&@72
+@75
+@1|:|'+0#e000002&|a| +0#0000000&@70
+|:| |'+0#e000002&|a| +0#0000000&@70
+|:|'+0#e000002&|a| +0#0000000&@71
+|:|'+0#e000002&|k| +0#0000000&@71
+|:|'+0#e000002&|z| +0#0000000&@71
+|:|'+0#e000002&|A| +0#0000000&@71
+|:|'+0#e000002&|K| +0#0000000&@71
+|:|'+0#e000002&|Z| +0#0000000&@71
+@57|3|7|,|1| @9|4|3|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_range_03.dump 
b/runtime/syntax/testdir/dumps/vim_ex_range_03.dump
new file mode 100644
index 000000000..89477a99e
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_range_03.dump
@@ -0,0 +1,20 @@
+|:+0&#ffffff0|'+0#e000002&|Z| +0#0000000&@71
+|:|'+0#e000002&|0| +0#0000000&@71
+|:|'+0#e000002&|9| +0#0000000&@71
+|:|'+0#e000002&|[| +0#0000000&@71
+|:|'+0#e000002&|]| +0#0000000&@71
+>:|'+0#e000002&|{| +0#0000000&@71
+|:|'+0#e000002&|}| +0#0000000&@71
+|:|'+0#e000002&|(| +0#0000000&@71
+|:|'+0#e000002&|)| +0#0000000&@71
+|:|'+0#e000002&|<| +0#0000000&@71
+|:|'+0#e000002&|>| +0#0000000&@71
+|:|'+0#e000002&|`| +0#0000000&@71
+|:|'+0#e000002&@1| +0#0000000&@71
+|:|'+0#e000002&|"| +0#0000000&@71
+|:|'+0#e000002&|^| +0#0000000&@71
+|:|'+0#e000002&|.| +0#0000000&@71
+@75
+|e+0#af5f00255&|c|h|o| +0#0000000&|||'+0#e000002&|a| +0#0000000&@66
+|e+0#af5f00255&|c|h|o||+0#0000000&| |'+0#e000002&|a| +0#0000000&@66
+@57|5@1|,|1| @9|6|9|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_range_04.dump 
b/runtime/syntax/testdir/dumps/vim_ex_range_04.dump
new file mode 100644
index 000000000..d9869fe34
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_range_04.dump
@@ -0,0 +1,20 @@
+|e+0#af5f00255#ffffff0|c|h|o||+0#0000000&| |'+0#e000002&|a| +0#0000000&@66
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|a| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|k| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|z| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|A| +0#0000000&@65
+>e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|K| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|Z| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|0| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|9| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|[| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|]| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|{| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|}| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|(| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|)| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|<| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|>| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|`| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&@1| +0#0000000&@65
+@57|7|3|,|1| @9|9|4|%| 
diff --git a/runtime/syntax/testdir/dumps/vim_ex_range_05.dump 
b/runtime/syntax/testdir/dumps/vim_ex_range_05.dump
new file mode 100644
index 000000000..cadd7bbaa
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_ex_range_05.dump
@@ -0,0 +1,20 @@
+|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&||| |'+0#e000002&@1| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|"| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|^| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|.| +0#0000000&@65
+> @74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|9|0|,|0|-|1| @7|B|o|t| 
diff --git a/runtime/syntax/testdir/input/vim_ex_range.vim 
b/runtime/syntax/testdir/input/vim_ex_range.vim
index 3383702c2..88e7ad471 100644
--- a/runtime/syntax/testdir/input/vim_ex_range.vim
+++ b/runtime/syntax/testdir/input/vim_ex_range.vim
@@ -1,6 +1,90 @@
 " Ex command ranges
 
+
 '<,'>print
 '(,')print
 '{,'}print
 '[,']print
+
+:'<,'>print
+:'(,')print
+:'{,'}print
+:'[,']print
+
+echo | '<,'>print
+echo | '(,')print
+echo | '{,'}print
+echo | '[,']print
+
+" bare mark ranges
+
+'a
+'k
+'z
+'A
+'K
+'Z
+'0
+'9
+'[
+']
+'{
+'}
+'(
+')
+'<
+'>
+'`
+''
+'"
+'^
+'.
+
+ :'a
+: 'a
+:'a
+:'k
+:'z
+:'A
+:'K
+:'Z
+:'0
+:'9
+:'[
+:']
+:'{
+:'}
+:'(
+:')
+:'<
+:'>
+:'`
+:''
+:'"
+:'^
+:'.
+
+echo |'a
+echo| 'a
+echo | 'a
+echo | 'k
+echo | 'z
+echo | 'A
+echo | 'K
+echo | 'Z
+echo | '0
+echo | '9
+echo | '[
+echo | ']
+echo | '{
+echo | '}
+echo | '(
+echo | ')
+echo | '<
+echo | '>
+echo | '`
+echo | ''
+echo | '"
+echo | '^
+echo | '.
+
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 71d7f37ef..0021b7433 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -1004,18 +1004,17 @@ syn match       vimMarkArgError contained       
"["^.(){}0-9]"
 syn cluster    vimMarkArg      contains=vimMarkArg,vimMarkArgError
 
 " Marks, Registers, Addresses, Filters: {{{2
+syn match      vimMark "'[a-zA-Z0-9]\ze\s*$"
+syn match      vimMark "'[[\]{}()<>'`"^.]\ze\s*$"
 syn match      vimMark "'[a-zA-Z0-9]\ze[-+,!]" 
nextgroup=vimFilter,vimMarkNumber,vimSubst1
-syn match      vimMark "'[[\]{}()<>]\ze[-+,!]" 
nextgroup=vimFilter,vimMarkNumber,vimSubst1
-syn match      vimMark ",\zs'[[\]{}()<>]\ze"   
nextgroup=vimFilter,vimMarkNumber,vimSubst1
+syn match      vimMark "'[[\]{}()<>'`"^.]\ze[-+,!]"    
nextgroup=vimFilter,vimMarkNumber,vimSubst1
+syn match      vimMark ",\zs'[[\]{}()<>'`"^.]" 
nextgroup=vimFilter,vimMarkNumber,vimSubst1
 syn match      vimMark "[!,:]\zs'[a-zA-Z0-9]"  
nextgroup=vimFilter,vimMarkNumber,vimSubst1
-syn match      vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" 
nextgroup=vimFilter,vimMarkNumber,vimSubst1
 syn match      vimMarkNumber   "[-+]\d\+"              contained 
contains=vimOper nextgroup=vimSubst1
 syn match      vimPlainMark contained  "'[a-zA-Z0-9]"
 syn match      vimRange        "[`'][a-zA-Z0-9],[`'][a-zA-Z0-9]"       
contains=vimMark        skipwhite nextgroup=vimFilter
 
 syn match      vimRegister     '[^,;[{:        
]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]'
-syn match      vimRegister     '\<norm\s\+\zs"[a-zA-Z0-9]'
-syn match      vimRegister     '\<normal\s\+\zs"[a-zA-Z0-9]'
 syn match      vimRegister     '@"'
 syn match      vimPlainRegister contained      '"[a-zA-Z0-9\-:.%#*+=]'
 syn match      vimLetRegister  contained       '@["0-9\-a-zA-Z:.%#=*+~_/]'

-- 
-- 
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/E1uTO3A-00ENB0-8Q%40256bit.org.

Raspunde prin e-mail lui