]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(vim): Update base syntax, refine object constructor matching
authorDoug Kearns <dougkearns@gmail.com>
Tue, 11 Nov 2025 16:37:09 +0000 (16:37 +0000)
committerChristian Brabandt <cb@256bit.org>
Tue, 11 Nov 2025 16:37:09 +0000 (16:37 +0000)
Match "object" and "<" ... ">" separately with dedicated syntax groups
to allow for highlighting distinct from that generally used for types.

closes: #18721

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/syntax/generator/vim.vim.base
runtime/syntax/testdir/dumps/vim9_types_example_object_00.dump
runtime/syntax/testdir/dumps/vim9_types_example_object_01.dump
runtime/syntax/testdir/dumps/vim9_types_object_00.dump
runtime/syntax/testdir/dumps/vim9_types_object_01.dump
runtime/syntax/testdir/input/vim9_types_example_object.vim
runtime/syntax/testdir/input/vim9_types_object.vim
runtime/syntax/vim.vim

index 7aae3055b7cabf05ae58487d15b85fcb0b87dc12..6f1b73be4795e589ccf966d94b43402ac42bb4e7 100644 (file)
@@ -2,7 +2,7 @@
 " Language:       Vim script
 " Maintainer:     Hirohito Higashi <h.east.727 ATMARK gmail.com>
 "         Doug Kearns <dougkearns@gmail.com>
-" Last Change:    2025 Nov 10
+" Last Change:    2025 Nov 11
 " Former Maintainer: Charles E. Campbell
 
 " DO NOT CHANGE DIRECTLY.
@@ -585,9 +585,10 @@ syn match  vimParamType    contained       ":\s"   skipwhite skipnl nextgroup=@vimType conta
 syn match      vimTypeSep      contained       ":\%(\s\|\n\)\@=" skipwhite nextgroup=@vimType
 syn keyword    vimType contained       blob bool channel float job number string void
 syn keyword    vimTypeAny      contained       any
-syn region     vimTypeObject   contained
-      \ matchgroup=vimType
-      \ start="\<object<"
+syn match      vimTypeObject   contained       "\<object<\@="  nextgroup=vimTypeObjectArgs
+syn region     vimTypeObjectArgs       contained
+      \ matchgroup=vimTypeObjectBracket
+      \ start="<"
       \ end=">"
       \ contains=vimTypeAny,vimTypeObject,vimUserType
       \ oneline
@@ -1147,9 +1148,10 @@ syn region       vim9VariableList        contained       start="\[" end="]" contains=@vimContinue,@
 syn match      vim9VariableTypeSep     contained       "\S\@1<=:\%(\s\|\n\)\@="                skipwhite nextgroup=@vim9VariableType
 syn keyword    vim9VariableType                contained       blob bool channel float job number string void  skipwhite nextgroup=vimLetHeredoc
 syn keyword    vim9VariableTypeAny     contained       any                     skipwhite nextgroup=vimLetHeredoc
-syn region     vim9VariableTypeObject  contained
-      \ matchgroup=vimType
-      \ start="\<object<"
+syn match      vim9VariableTypeObject  contained       "\<object<\@="                            nextgroup=vim9VariableTypeObjectArgs
+syn region     vim9VariableTypeObjectArgs
+      \ matchgroup=vim9VariableTypeObjectBracket
+      \ start="<"
       \ end=">"
       \ contains=vimTypeAny,vimTypeObject,vimUserType
       \ oneline
@@ -2613,6 +2615,7 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimType   Type
  hi def link vimTypeAny        vimType
  hi def link vimTypeObject     vimType
+ hi def link vimTypeObjectBracket      vimTypeObject
  hi def link vimUniq   vimCommand
  hi def link vimUniqBang       vimBang
  hi def link vimUniqOptions    Special
@@ -2706,6 +2709,7 @@ if !exists("skip_vim_syntax_inits")
  hi def link vim9VariableType  vimType
  hi def link vim9VariableTypeAny       vimTypeAny
  hi def link vim9VariableTypeObject    vimTypeObject
+ hi def link vim9VariableTypeObjectBracket     vimTypeObjectBracket
  hi def link vim9Var   vimCommand
  hi def link vim9Vim9ScriptArg Special
  hi def link vim9Vim9Script    vimCommand
index 98aaaee0fbc2403f244fbd520294e79cadb54688..a60f904057be71a2357088de04b799c2769bf3c2 100644 (file)
@@ -1,7 +1,5 @@
 >v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
 |#+0#0000e05&| |V|i|m|9| |o|b|j|e|c|t| |t|y|p|e| |c|o|n|s|t|r|u|c|t|o|r| +0#0000000&@44
-|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|T|y|p|e|O|b|j|e|c|t| |T|o|d|o| +0#0000000&@31
-|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|9|V|a|r|i|a|b|l|e|T|y|p|e|O|b|j|e|c|t| |T|o|d|o| +0#0000000&@22
 @75
 @75
 |#+0#0000e05&| |I|s@1|u|e| |#|1|8|6|7@1| |(|N|o| |r|e|c|o|g|n|i|t|i|o|n| |o|f| |o|b|j|e|c|t|<|a|n|y|>| |t|y|p|e|s| |-| |A|l|i|a|k|s|e|i| |B|u|d|a|v|e|i|)| +0#0000000&@3
@@ -17,4 +15,6 @@
 |e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
 @75
 |e+0#af5f00255&|n|u|m| +0#0000000&|E| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I| @55
+@2|I|N|S|T|A|N|C|E| @64
+@75
 @57|1|,|1| @10|T|o|p| 
index 4f2100214dc6690146a3337e0bc4c68aa35b16a1..21d48d7c590c3e6308ca91d519041d83b7f4c235 100644 (file)
@@ -1,11 +1,9 @@
-| +0&#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@52
-@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|"+0#e000002&|C|"| +0#0000000&@60
-@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
+| +0&#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
 |e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
 @75
->e+0#af5f00255&|n|u|m| +0#0000000&|E| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I| @55
+|e+0#af5f00255&|n|u|m| +0#0000000&|E| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|I| @55
 @2|I|N|S|T|A|N|C|E| @64
-@75
+> @74
 @2|d+0#af5f00255&|e|f| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@52
 @4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|"+0#e000002&|E|"| +0#0000000&@60
 @2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@@ -17,4 +15,6 @@
 |e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|c+0#0000000&|,| |e|)+0#e000e06&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|o|s| @57
 @75
 |~+0#4040ff13&| @73
-| +0#0000000&@56|1|9|,|1| @9|B|o|t| 
+|~| @73
+|~| @73
+| +0#0000000&@56|1|9|,|0|-|1| @7|B|o|t| 
index ea653037e420fde4d92881bfec6c8ff2358de716..efd7f06a0789ce2bc5066a67a13ea326f0922d88 100644 (file)
@@ -1,20 +1,20 @@
 >v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@64
 |#+0#0000e05&| |V|i|m|9| |o|b|j|e|c|t| |t|y|p|e| |c|o|n|s|t|r|u|c|t|o|r| +0#0000000&@44
-|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|I|y|p|e|O|b|j|e|c|t| |T|o|d|o| +0#0000000&@31
-|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|9|V|a|r|i|a|b|l|e|I|y|p|e|O|b|j|e|c|t| |T|o|d|o| +0#0000000&@22
+|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|T|y|p|e|O|b|j|e|c|t| |T|o|d|o| +0#0000000&@31
+|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |v|i|m|T|y|p|e|O|b|j|e|c|t|B|r|a|c|k|e|t| |T|i|t|l|e| +0#0000000&@23
 @75
 @75
 |i+0#af5f00255&|n|t|e|r|f|a|c|e| +0#0000000&|I| @63
 |e+0#af5f00255&|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@62
 @75
-|v+0#af5f00255&|a|r| +0#0000000&|a|:| |o+0#00e0003&|b|j|e|c|t|<|I+0#0000000&|>+0#00e0003&| +0#0000000&@58
-|v+0#af5f00255&|a|r| +0#0000000&|b|:| |o+0#00e0003&|b|j|e|c|t|<|a|n|y|>| +0#0000000&@56
-|v+0#af5f00255&|a|r| +0#0000000&|c|:| |o+0#00e0003&|b|j|e|c|t|<|o|b|j|e|c|t|<|I+0#0000000&|>+0#00e0003&@1| +0#0000000&@50
-|v+0#af5f00255&|a|r| +0#0000000&|d|:| |o+0#00e0003&|b|j|e|c|t|<|o|b|j|e|c|t|<|a|n|y|>@1| +0#0000000&@48
+|v+0#af5f00255&|a|r| +0#0000000&|a|:| |o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|I+0#0000000&|>+0#e000e06&| +0#0000000&@58
+|v+0#af5f00255&|a|r| +0#0000000&|b|:| |o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|a+0#00e0003&|n|y|>+0#e000e06&| +0#0000000&@56
+|v+0#af5f00255&|a|r| +0#0000000&|c|:| |o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|I+0#0000000&|>+0#e000e06&@1| +0#0000000&@50
+|v+0#af5f00255&|a|r| +0#0000000&|d|:| |o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|a+0#00e0003&|n|y|>+0#e000e06&@1| +0#0000000&@48
 @75
 |d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&| +0#0000000&@66
-@4|a|r|g|1|:| |o+0#00e0003&|b|j|e|c|t|<|I+0#0000000&|>+0#00e0003&|,+0#0000000&| @54
-@4|a|r|g|2|:| |o+0#00e0003&|b|j|e|c|t|<|a|n|y|>|,+0#0000000&| @52
-@4|a|r|g|3|:| |o+0#00e0003&|b|j|e|c|t|<|o|b|j|e|c|t|<|I+0#0000000&|>+0#00e0003&@1|,+0#0000000&| @46
-@4|a|r|g|4|:| |o+0#00e0003&|b|j|e|c|t|<|o|b|j|e|c|t|<|a|n|y|>@1|)+0#e000e06&| +0#0000000&@44
+@4|a|r|g|1|:| |o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|I+0#0000000&|>+0#e000e06&|,+0#0000000&| @54
+@4|a|r|g|2|:| |o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|a+0#00e0003&|n|y|>+0#e000e06&|,+0#0000000&| @52
+@4|a|r|g|3|:| |o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|I+0#0000000&|>+0#e000e06&@1|,+0#0000000&| @46
+@4|a|r|g|4|:| |o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|a+0#00e0003&|n|y|>+0#e000e06&@1|)| +0#0000000&@44
 @57|1|,|1| @10|T|o|p| 
index d4031aa10d425cea6f9be70c046e27256ee49bf5..7f9cd315279622ac425f19f811fce985e06fda0b 100644 (file)
@@ -1,15 +1,15 @@
 | +0&#ffffff0@74
 |d+0#af5f00255&|e|f| +0#0000000&|F|o@1|(+0#e000e06&| +0#0000000&@66
-@4|a|r|g|1|:| |o+0#00e0003&|b|j|e|c|t|<|I+0#0000000&|>+0#00e0003&|,+0#0000000&| @54
-@4|a|r|g|2|:| |o+0#00e0003&|b|j|e|c|t|<|a|n|y|>|,+0#0000000&| @52
-@4|a|r|g|3|:| |o+0#00e0003&|b|j|e|c|t|<|o|b|j|e|c|t|<|I+0#0000000&|>+0#00e0003&@1|,+0#0000000&| @46
-@4>a|r|g|4|:| |o+0#00e0003&|b|j|e|c|t|<|o|b|j|e|c|t|<|a|n|y|>@1|)+0#e000e06&| +0#0000000&@44
+@4|a|r|g|1|:| |o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|I+0#0000000&|>+0#e000e06&|,+0#0000000&| @54
+@4|a|r|g|2|:| |o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|a+0#00e0003&|n|y|>+0#e000e06&|,+0#0000000&| @52
+@4|a|r|g|3|:| |o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|I+0#0000000&|>+0#e000e06&@1|,+0#0000000&| @46
+@4>a|r|g|4|:| |o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|a+0#00e0003&|n|y|>+0#e000e06&@1|)| +0#0000000&@44
 |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
 @75
-|d+0#af5f00255&|e|f| +0#0000000&|B|a|r|(+0#e000e06&|)|:+0#0000000&| |o+0#00e0003&|b|j|e|c|t|<|I+0#0000000&|>+0#00e0003&| +0#0000000&@54
+|d+0#af5f00255&|e|f| +0#0000000&|B|a|r|(+0#e000e06&|)|:+0#0000000&| |o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|I+0#0000000&|>+0#e000e06&| +0#0000000&@54
 |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
 @75
-|d+0#af5f00255&|e|f| +0#0000000&|B|a|z|(+0#e000e06&|)|:+0#0000000&| |o+0#00e0003&|b|j|e|c|t|<|o|b|j|e|c|t|<|I+0#0000000&|>+0#00e0003&@1| +0#0000000&@46
+|d+0#af5f00255&|e|f| +0#0000000&|B|a|z|(+0#e000e06&|)|:+0#0000000&| |o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|o+0#0000001#ffff4012|b|j|e|c|t|<+0#e000e06#ffffff0|I+0#0000000&|>+0#e000e06&@1| +0#0000000&@46
 |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@68
 @75
 |~+0#4040ff13&| @73
index 4d36cc9259edc2705520b0ed6f1dbcd76cb4173d..f5f902db7fbab98f49461ee9752e2ae158633309 100644 (file)
@@ -1,7 +1,5 @@
 vim9script
 # Vim9 object type constructor
-# VIM_TEST_SETUP hi link vimTypeObject Todo
-# VIM_TEST_SETUP hi link vim9VariableTypeObject Todo
 
 
 # Issue #18677 (No recognition of object<any> types - Aliaksei Budavei)
index 7066464559b7e760ffafeb71d558d2a99b4f0993..7cf6eec05a79a777b2d92b7e8d6da28370bbd61d 100644 (file)
@@ -1,7 +1,7 @@
 vim9script
 # Vim9 object type constructor
-# VIM_TEST_SETUP hi link vimIypeObject Todo
-# VIM_TEST_SETUP hi link vim9VariableIypeObject Todo
+# VIM_TEST_SETUP hi link vimTypeObject Todo
+# VIM_TEST_SETUP hi link vimTypeObjectBracket Title
 
 
 interface I
index 5e1185a2b0e985f3556860185d2b4925c20411a8..25879f46cfd7494f4f6ef53430f994b5b16deb11 100644 (file)
@@ -2,7 +2,7 @@
 " Language:       Vim script
 " Maintainer:     Hirohito Higashi <h.east.727 ATMARK gmail.com>
 "         Doug Kearns <dougkearns@gmail.com>
-" Last Change:    2025 Nov 10
+" Last Change:    2025 Nov 11
 " Former Maintainer: Charles E. Campbell
 
 " DO NOT CHANGE DIRECTLY.
@@ -639,9 +639,10 @@ syn match  vimParamType    contained       ":\s"   skipwhite skipnl nextgroup=@vimType conta
 syn match      vimTypeSep      contained       ":\%(\s\|\n\)\@=" skipwhite nextgroup=@vimType
 syn keyword    vimType contained       blob bool channel float job number string void
 syn keyword    vimTypeAny      contained       any
-syn region     vimTypeObject   contained
-      \ matchgroup=vimType
-      \ start="\<object<"
+syn match      vimTypeObject   contained       "\<object<\@="  nextgroup=vimTypeObjectArgs
+syn region     vimTypeObjectArgs       contained
+      \ matchgroup=vimTypeObjectBracket
+      \ start="<"
       \ end=">"
       \ contains=vimTypeAny,vimTypeObject,vimUserType
       \ oneline
@@ -1203,9 +1204,10 @@ syn region       vim9VariableList        contained       start="\[" end="]" contains=@vimContinue,@
 syn match      vim9VariableTypeSep     contained       "\S\@1<=:\%(\s\|\n\)\@="                skipwhite nextgroup=@vim9VariableType
 syn keyword    vim9VariableType                contained       blob bool channel float job number string void  skipwhite nextgroup=vimLetHeredoc
 syn keyword    vim9VariableTypeAny     contained       any                     skipwhite nextgroup=vimLetHeredoc
-syn region     vim9VariableTypeObject  contained
-      \ matchgroup=vimType
-      \ start="\<object<"
+syn match      vim9VariableTypeObject  contained       "\<object<\@="                            nextgroup=vim9VariableTypeObjectArgs
+syn region     vim9VariableTypeObjectArgs
+      \ matchgroup=vim9VariableTypeObjectBracket
+      \ start="<"
       \ end=">"
       \ contains=vimTypeAny,vimTypeObject,vimUserType
       \ oneline
@@ -2675,6 +2677,7 @@ if !exists("skip_vim_syntax_inits")
  hi def link vimType   Type
  hi def link vimTypeAny        vimType
  hi def link vimTypeObject     vimType
+ hi def link vimTypeObjectBracket      vimTypeObject
  hi def link vimUniq   vimCommand
  hi def link vimUniqBang       vimBang
  hi def link vimUniqOptions    Special
@@ -2768,6 +2771,7 @@ if !exists("skip_vim_syntax_inits")
  hi def link vim9VariableType  vimType
  hi def link vim9VariableTypeAny       vimTypeAny
  hi def link vim9VariableTypeObject    vimTypeObject
+ hi def link vim9VariableTypeObjectBracket     vimTypeObjectBracket
  hi def link vim9Var   vimCommand
  hi def link vim9Vim9ScriptArg Special
  hi def link vim9Vim9Script    vimCommand