runtime(vim): Update base-syntax and generator, only match valid predefined variables

- Only match valid predefined and option variables.
- Match scope dictionaries.
- Highlight scope prefixed variables as a scope dictionary accessor. The
  vimVarScope syntax group can be linked to vimVar to disable this.
- Include support for Neovim-only predefined and option variables.

Temporary collateral damage - scope dictionaries match instead of keys
in dictionary literals.

closes: #16727

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/syntax/testdir/input/vim9_expr.vim b/runtime/syntax/testdir/input/vim9_expr.vim
index fd9cbb0..fc94abd 100644
--- a/runtime/syntax/testdir/input/vim9_expr.vim
+++ b/runtime/syntax/testdir/input/vim9_expr.vim
@@ -2,6 +2,55 @@
 # Vim9-script expressions
 
 
+# Dictionary
+
+echo {}
+echo {   foo: 21 * 2 }
+echo { -foo-: 21 * 2 }
+echo {    42: 21 * 2 }
+echo { 'foo': 21 * 2 }
+echo { "foo": 21 * 2 }
+
+echo { foo: {   bar: 21 * 2 } }
+echo { foo: { -bar-: 21 * 2 } }
+echo { foo: {    42: 21 * 2 } }
+echo { foo: { 'bar': 21 * 2 } }
+echo { foo: { "bar": 21 * 2 } }
+
+echo { -foo-: {   bar: 21 * 2 } }
+echo { -foo-: { -bar-: 21 * 2 } }
+echo { -foo-: {    42: 21 * 2 } }
+echo { -foo-: { 'bar': 21 * 2 } }
+echo { -foo-: { "bar": 21 * 2 } }
+
+echo { 42: {   bar: 21 * 2 } }
+echo { 42: { -bar-: 21 * 2 } }
+echo { 42: {    42: 21 * 2 } }
+echo { 42: { 'bar': 21 * 2 } }
+echo { 42: { "bar": 21 * 2 } }
+
+echo { 'foo': {   bar: 21 * 2 } }
+echo { 'foo': { -bar-: 21 * 2 } }
+echo { 'foo': {    42: 21 * 2 } }
+echo { 'foo': { "bar": 21 * 2 } }
+echo { 'foo': { 'bar': 21 * 2 } }
+
+echo { "foo": {   bar: 21 * 2 } }
+echo { "foo": { -bar-: 21 * 2 } }
+echo { "foo": {    42: 21 * 2 } }
+echo { "foo": { 'bar': 21 * 2 } }
+echo { "foo": { "bar": 21 * 2 } }
+
+echo {
+  # comment
+  foo: {
+    bar: 21 * 2
+  }
+}
+
+# match as keys not scope dictionaries
+echo { b: 42, w: 42, t: 42, g: 42, l: 42, s: 42, a: 42, v: 42  }
+
 # Operators
 
 # Ternary