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 <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Doug Kearns
2025-06-22 18:47:49 +02:00
committed by Christian Brabandt
parent 99b9847bd8
commit dcff497373
9 changed files with 206 additions and 24 deletions

View File

@ -949,18 +949,17 @@ syn match vimMarkArgError contained "["^.(){}0-9]"
syn cluster vimMarkArg contains=vimMarkArg,vimMarkArgError syn cluster vimMarkArg contains=vimMarkArg,vimMarkArgError
" Marks, Registers, Addresses, Filters: {{{2 " 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 "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst1
syn match vimMark "'[[\]{}()<>]\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 ",\zs'[[\]{}()<>'`"^.]" nextgroup=vimFilter,vimMarkNumber,vimSubst1
syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" 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 vimMarkNumber "[-+]\d\+" contained contains=vimOper nextgroup=vimSubst1
syn match vimPlainMark contained "'[a-zA-Z0-9]" 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 vimRange "[`'][a-zA-Z0-9],[`'][a-zA-Z0-9]" contains=vimMark skipwhite nextgroup=vimFilter
syn match vimRegister '[^,;[{: \t]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]' syn match vimRegister '[^,;[{: \t]\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 vimRegister '@"'
syn match vimPlainRegister contained '"[a-zA-Z0-9\-:.%#*+=]' syn match vimPlainRegister contained '"[a-zA-Z0-9\-:.%#*+=]'
syn match vimLetRegister contained '@["0-9\-a-zA-Z:.%#=*+~_/]' syn match vimLetRegister contained '@["0-9\-a-zA-Z:.%#=*+~_/]'

View File

@ -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 >"+0#0000e05#ffffff0| |E|x| |c|o|m@1|a|n|d| |r|a|n|g|e|s| +0#0000000&@55
@75 @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#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 @75
|~| @73 |:|'+0#e000002&|<|,+0#0000000&|'+0#e000002&|>|p+0#af5f00255&|r|i|n|t| +0#0000000&@63
|~| @73 |:|'+0#e000002&|(|,+0#0000000&|'+0#e000002&|)|p+0#af5f00255&|r|i|n|t| +0#0000000&@63
|~| @73 |:|'+0#e000002&|{|,+0#0000000&|'+0#e000002&|}|p+0#af5f00255&|r|i|n|t| +0#0000000&@63
|~| @73 |:|'+0#e000002&|[|,+0#0000000&|'+0#e000002&|]|p+0#af5f00255&|r|i|n|t| +0#0000000&@63
|~| @73 @75
|~| @73 |e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|<|,+0#0000000&|'+0#e000002&|>|p+0#af5f00255&|r|i|n|t| +0#0000000&@57
|~| @73 |e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|(|,+0#0000000&|'+0#e000002&|)|p+0#af5f00255&|r|i|n|t| +0#0000000&@57
|~| @73 |e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|{|,+0#0000000&|'+0#e000002&|}|p+0#af5f00255&|r|i|n|t| +0#0000000&@57
|~| @73 |e+0#af5f00255&|c|h|o| +0#0000000&||| |'+0#e000002&|[|,+0#0000000&|'+0#e000002&|]|p+0#af5f00255&|r|i|n|t| +0#0000000&@57
|~| @73 @75
|~| @73 |"+0#0000e05&| |b|a|r|e| |m|a|r|k| |r|a|n|g|e|s| +0#0000000&@56
|~| @73 @57|1|,|1| @10|T|o|p|
| +0#0000000&@56|1|,|1| @10|A|l@1|

View File

@ -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|%|

View File

@ -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|%|

View File

@ -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|%|

View File

@ -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|%|

View File

@ -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|

View File

@ -1,6 +1,90 @@
" Ex command ranges " Ex command ranges
'<,'>print '<,'>print
'(,')print '(,')print
'{,'}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 | '.

View File

@ -1004,18 +1004,17 @@ syn match vimMarkArgError contained "["^.(){}0-9]"
syn cluster vimMarkArg contains=vimMarkArg,vimMarkArgError syn cluster vimMarkArg contains=vimMarkArg,vimMarkArgError
" Marks, Registers, Addresses, Filters: {{{2 " 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 "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst1
syn match vimMark "'[[\]{}()<>]\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 ",\zs'[[\]{}()<>'`"^.]" nextgroup=vimFilter,vimMarkNumber,vimSubst1
syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" 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 vimMarkNumber "[-+]\d\+" contained contains=vimOper nextgroup=vimSubst1
syn match vimPlainMark contained "'[a-zA-Z0-9]" 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 vimRange "[`'][a-zA-Z0-9],[`'][a-zA-Z0-9]" contains=vimMark skipwhite nextgroup=vimFilter
syn match vimRegister '[^,;[{: \t]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]' syn match vimRegister '[^,;[{: \t]\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 vimRegister '@"'
syn match vimPlainRegister contained '"[a-zA-Z0-9\-:.%#*+=]' syn match vimPlainRegister contained '"[a-zA-Z0-9\-:.%#*+=]'
syn match vimLetRegister contained '@["0-9\-a-zA-Z:.%#=*+~_/]' syn match vimLetRegister contained '@["0-9\-a-zA-Z:.%#=*+~_/]'