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>
This commit is contained in:
committed by
Christian Brabandt
parent
42e498d9c4
commit
3dca512939
@ -12,7 +12,7 @@ def Foo()
|
||||
t:foo = expr
|
||||
w:foo = expr
|
||||
|
||||
v:foo = expr
|
||||
v:true = expr
|
||||
|
||||
$FOO = expr
|
||||
|
||||
@ -59,6 +59,9 @@ END
|
||||
foo[1:] = expr
|
||||
foo[:] = expr
|
||||
|
||||
foo["key"] = expr
|
||||
foo['key'] = expr
|
||||
|
||||
foo += expr
|
||||
foo -= expr
|
||||
foo *= expr
|
||||
@ -107,36 +110,36 @@ END
|
||||
@f = expr
|
||||
@f ..= expr
|
||||
|
||||
&foo = expr
|
||||
&ari = expr
|
||||
|
||||
&t_k1 = "\<Esc>[234;"
|
||||
|
||||
&foo ..= expr
|
||||
&ari ..= expr
|
||||
|
||||
&foo += expr
|
||||
&foo -= expr
|
||||
&ari += expr
|
||||
&ari -= expr
|
||||
|
||||
&l:foo = expr
|
||||
&l:aleph = expr
|
||||
|
||||
&l:foo ..= expr
|
||||
&l:foo += expr
|
||||
&l:foo -= expr
|
||||
&l:aleph ..= expr
|
||||
&l:aleph += expr
|
||||
&l:aleph -= expr
|
||||
|
||||
&g:foo = expr
|
||||
&g:aleph = expr
|
||||
|
||||
&g:foo ..= expr
|
||||
&g:foo += expr
|
||||
&g:foo -= expr
|
||||
&g:aleph ..= expr
|
||||
&g:aleph += expr
|
||||
&g:aleph -= expr
|
||||
|
||||
[foo, bar] = expr
|
||||
[foo,
|
||||
\ bar] = expr
|
||||
[v:foo, v:bar] = expr
|
||||
[v:foo,
|
||||
\ v:bar] = expr
|
||||
[&foo, &bar] = expr
|
||||
[&foo,
|
||||
\ &bar] = expr
|
||||
[v:true, v:false] = expr
|
||||
[v:true,
|
||||
\ v:false] = expr
|
||||
[&ari, &bkc] = expr
|
||||
[&ari,
|
||||
\ &bkc] = expr
|
||||
[$foo, $bar] = expr
|
||||
[$foo,
|
||||
\ $bar] = expr
|
||||
@ -155,18 +158,18 @@ END
|
||||
[foo,
|
||||
\ bar;
|
||||
\ baz] = expr
|
||||
[v:foo, v:bar; v:baz] = expr
|
||||
[v:foo,
|
||||
\ v:bar;
|
||||
\ v:baz] = expr
|
||||
[v:true, v:false; v:none] = expr
|
||||
[v:true,
|
||||
\ v:false;
|
||||
\ v:none] = expr
|
||||
[$foo, $bar; $baz] = expr
|
||||
[$foo,
|
||||
\ $bar;
|
||||
\ $baz] = expr
|
||||
[&foo, &bar; &baz] = expr
|
||||
[&foo,
|
||||
\ &bar;
|
||||
\ &baz] = expr
|
||||
[&ari, &bkc; &cmp] = expr
|
||||
[&ari,
|
||||
\ &bkc;
|
||||
\ &cmp] = expr
|
||||
[@a, @b; @c] = expr
|
||||
[@a,
|
||||
\ @b;
|
||||
@ -195,6 +198,28 @@ END
|
||||
|
||||
for [foo, bar] in expr
|
||||
endfor
|
||||
|
||||
# Scope dictionaries
|
||||
|
||||
echo get(b:, 'foo', 42)
|
||||
echo get(w:, 'foo', 42)
|
||||
echo get(t:, 'foo', 42)
|
||||
echo get(g:, 'foo', 42)
|
||||
echo get(v:, 'foo', 42)
|
||||
|
||||
for k in keys(b:) | echo b:[k] | endfor
|
||||
for k in keys(w:) | echo w:[k] | endfor
|
||||
for k in keys(t:) | echo t:[k] | endfor
|
||||
for k in keys(g:) | echo g:[k] | endfor
|
||||
for k in keys(v:) | echo v:[k] | endfor
|
||||
|
||||
# Neovim-specific variables (not highlighted by default)
|
||||
|
||||
echo v:lua v:msgpack_types v:relnum v:stderr v:termrequest v:virtnum
|
||||
|
||||
echo &channel &inccommand &mousescroll &pumblend &redrawdebug &scrollback
|
||||
echo &shada &shadafile &statuscolumn &termpastefilter &termsync &winbar
|
||||
echo &winblend &winhighlight
|
||||
|
||||
enddef
|
||||
|
||||
|
||||
|
||||
@ -2,6 +2,55 @@ vim9script
|
||||
# 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
|
||||
|
||||
@ -11,7 +11,7 @@ g:foo = expr
|
||||
t:foo = expr
|
||||
w:foo = expr
|
||||
|
||||
v:foo = expr
|
||||
v:true = expr
|
||||
|
||||
$FOO = expr
|
||||
|
||||
@ -58,6 +58,9 @@ foo[:2] = expr
|
||||
foo[1:] = expr
|
||||
foo[:] = expr
|
||||
|
||||
foo["key"] = expr
|
||||
foo['key'] = expr
|
||||
|
||||
foo += expr
|
||||
foo -= expr
|
||||
foo *= expr
|
||||
@ -106,36 +109,36 @@ $FOO ..= expr
|
||||
@f = expr
|
||||
@f ..= expr
|
||||
|
||||
&foo = expr
|
||||
&ari = expr
|
||||
|
||||
&t_k1 = "\<Esc>[234;"
|
||||
|
||||
&foo ..= expr
|
||||
&ari ..= expr
|
||||
|
||||
&foo += expr
|
||||
&foo -= expr
|
||||
&ari += expr
|
||||
&ari -= expr
|
||||
|
||||
&l:foo = expr
|
||||
&l:aleph = expr
|
||||
|
||||
&l:foo ..= expr
|
||||
&l:foo += expr
|
||||
&l:foo -= expr
|
||||
&l:aleph ..= expr
|
||||
&l:aleph += expr
|
||||
&l:aleph -= expr
|
||||
|
||||
&g:foo = expr
|
||||
&g:aleph = expr
|
||||
|
||||
&g:foo ..= expr
|
||||
&g:foo += expr
|
||||
&g:foo -= expr
|
||||
&g:aleph ..= expr
|
||||
&g:aleph += expr
|
||||
&g:aleph -= expr
|
||||
|
||||
[foo, bar] = expr
|
||||
[foo,
|
||||
\ bar] = expr
|
||||
[v:foo, v:bar] = expr
|
||||
[v:foo,
|
||||
\ v:bar] = expr
|
||||
[&foo, &bar] = expr
|
||||
[&foo,
|
||||
\ &bar] = expr
|
||||
[v:true, v:false] = expr
|
||||
[v:true,
|
||||
\ v:false] = expr
|
||||
[&ari, &bkc] = expr
|
||||
[&ari,
|
||||
\ &bkc] = expr
|
||||
[$foo, $bar] = expr
|
||||
[$foo,
|
||||
\ $bar] = expr
|
||||
@ -154,18 +157,18 @@ $FOO ..= expr
|
||||
[foo,
|
||||
\ bar;
|
||||
\ baz] = expr
|
||||
[v:foo, v:bar; v:baz] = expr
|
||||
[v:foo,
|
||||
\ v:bar;
|
||||
\ v:baz] = expr
|
||||
[v:true, v:false; v:none] = expr
|
||||
[v:true,
|
||||
\ v:false;
|
||||
\ v:none] = expr
|
||||
[$foo, $bar; $baz] = expr
|
||||
[$foo,
|
||||
\ $bar;
|
||||
\ $baz] = expr
|
||||
[&foo, &bar; &baz] = expr
|
||||
[&foo,
|
||||
\ &bar;
|
||||
\ &baz] = expr
|
||||
[&ari, &bkc; &cmp] = expr
|
||||
[&ari,
|
||||
\ &bkc;
|
||||
\ &cmp] = expr
|
||||
[@a, @b; @c] = expr
|
||||
[@a,
|
||||
\ @b;
|
||||
@ -195,3 +198,25 @@ endfor
|
||||
for [foo, bar] in expr
|
||||
endfor
|
||||
|
||||
# Scope dictionaries
|
||||
|
||||
echo get(b:, 'foo', 42)
|
||||
echo get(w:, 'foo', 42)
|
||||
echo get(t:, 'foo', 42)
|
||||
echo get(g:, 'foo', 42)
|
||||
echo get(v:, 'foo', 42)
|
||||
|
||||
for k in keys(b:) | echo b:[k] | endfor
|
||||
for k in keys(w:) | echo w:[k] | endfor
|
||||
for k in keys(t:) | echo t:[k] | endfor
|
||||
for k in keys(g:) | echo g:[k] | endfor
|
||||
for k in keys(v:) | echo v:[k] | endfor
|
||||
|
||||
# Neovim-specific variables (not highlighted by default)
|
||||
|
||||
echo v:lua v:msgpack_types v:relnum v:stderr v:termrequest v:virtnum
|
||||
|
||||
echo &channel &inccommand &mousescroll &pumblend &redrawdebug &scrollback
|
||||
echo &shada &shadafile &statuscolumn &termpastefilter &termsync &winbar
|
||||
echo &winblend &winhighlight
|
||||
|
||||
|
||||
@ -163,6 +163,20 @@ function Foo(
|
||||
return 42
|
||||
endfunction
|
||||
|
||||
|
||||
" arguments
|
||||
|
||||
function Foo(a, b, c)
|
||||
echo a:a a:b a:c
|
||||
endfunction
|
||||
|
||||
function Foo(...)
|
||||
echo a:000
|
||||
echo a:0
|
||||
echo a:1 a:2 a:3 a:4 a:5 a:6 a:7 a:8 a:9 a:10 a:11 a:12 a:13 a:14 a:15 a:16 a:17 a:18 a:19 a:20
|
||||
endfunction
|
||||
|
||||
|
||||
" Issue #16243 (vimscript def parameters syntax highlight is wrong)
|
||||
|
||||
function Test(lines = [line('.'), line('.')])
|
||||
|
||||
@ -166,6 +166,19 @@ function Foo(
|
||||
endfunction
|
||||
|
||||
|
||||
" arguments
|
||||
|
||||
function Foo(a, b, c)
|
||||
echo a:a a:b a:c
|
||||
endfunction
|
||||
|
||||
function Foo(...)
|
||||
echo a:000
|
||||
echo a:0
|
||||
echo a:1 a:2 a:3 a:4 a:5 a:6 a:7 a:8 a:9 a:10 a:11 a:12 a:13 a:14 a:15 a:16 a:17 a:18 a:19 a:20
|
||||
endfunction
|
||||
|
||||
|
||||
" comments
|
||||
|
||||
function Foo()
|
||||
|
||||
@ -100,6 +100,79 @@ echo [1, 'two', 1 + 2, "fo" .. "ur"]
|
||||
" Issue #5830 (Incorrect syntax highlighting in Vim script when omitting space in list of string)
|
||||
let l = ['a','b','c']
|
||||
|
||||
" Dictionary
|
||||
|
||||
echo {}
|
||||
echo { 'foo': 21 * 2 }
|
||||
echo { "foo": 21 * 2 }
|
||||
echo { 42: 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": #{ 42: 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': #{ 42: 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 { 42: #{ 42: 21 * 2 } }
|
||||
|
||||
echo {
|
||||
"\ comment
|
||||
\ "foo": { "bar": 21 * 2 }
|
||||
\}
|
||||
|
||||
" TODO: arbitrary expression keys
|
||||
|
||||
" Literal Dictionary
|
||||
|
||||
echo #{}
|
||||
echo #{ foo: 21 * 2 }
|
||||
echo #{ -foo-: 21 * 2 }
|
||||
echo #{ 42: 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: { 42: 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-: { 42: 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 #{ 42: { 42: 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 }
|
||||
|
||||
" Register
|
||||
|
||||
echo @"
|
||||
|
||||
@ -32,8 +32,8 @@ function Foo()
|
||||
let b:foo[1:] = expr
|
||||
let b:foo[:] = expr
|
||||
|
||||
let bfoo["key"] = expr
|
||||
let bfoo['key'] = expr
|
||||
let b:foo["key"] = expr
|
||||
let b:foo['key'] = expr
|
||||
|
||||
let b:foo += expr
|
||||
let b:foo -= expr
|
||||
@ -103,25 +103,25 @@ function Foo()
|
||||
let t:foo .= expr
|
||||
let t:foo ..= expr
|
||||
|
||||
let v:foo = expr
|
||||
let v:true = expr
|
||||
|
||||
let v:foo[0] = expr
|
||||
let v:true[0] = expr
|
||||
|
||||
let v:foo[1:2] = expr
|
||||
let v:foo[:2] = expr
|
||||
let v:foo[1:] = expr
|
||||
let v:foo[:] = expr
|
||||
let v:true[1:2] = expr
|
||||
let v:true[:2] = expr
|
||||
let v:true[1:] = expr
|
||||
let v:true[:] = expr
|
||||
|
||||
let v:foo["key"] = expr
|
||||
let v:foo['key'] = expr
|
||||
let v:true["key"] = expr
|
||||
let v:true['key'] = expr
|
||||
|
||||
let v:foo += expr
|
||||
let v:foo -= expr
|
||||
let v:foo *= expr
|
||||
let v:foo /= expr
|
||||
let v:foo %= expr
|
||||
let v:foo .= expr
|
||||
let v:foo ..= expr
|
||||
let v:true += expr
|
||||
let v:true -= expr
|
||||
let v:true *= expr
|
||||
let v:true /= expr
|
||||
let v:true %= expr
|
||||
let v:true .= expr
|
||||
let v:true ..= expr
|
||||
|
||||
let w:foo = expr
|
||||
|
||||
@ -151,38 +151,38 @@ function Foo()
|
||||
let @f .= expr
|
||||
let @f ..= expr
|
||||
|
||||
let &foo = expr
|
||||
let &ari = expr
|
||||
|
||||
let &t_k1 = "\<Esc>[234;"
|
||||
|
||||
let &foo .= expr
|
||||
let &foo ..= expr
|
||||
let &foo += expr
|
||||
let &foo -= expr
|
||||
let &ari .= expr
|
||||
let &ari ..= expr
|
||||
let &ari += expr
|
||||
let &ari -= expr
|
||||
|
||||
let &l:foo = expr
|
||||
let &l:aleph = expr
|
||||
|
||||
let &l:foo .= expr
|
||||
let &l:foo ..= expr
|
||||
let &l:foo += expr
|
||||
let &l:foo -= expr
|
||||
let &l:aleph .= expr
|
||||
let &l:aleph ..= expr
|
||||
let &l:aleph += expr
|
||||
let &l:aleph -= expr
|
||||
|
||||
let &g:foo = expr
|
||||
let &g:aleph = expr
|
||||
|
||||
let &g:foo .= expr
|
||||
let &g:foo ..= expr
|
||||
let &g:foo += expr
|
||||
let &g:foo -= expr
|
||||
let &g:aleph .= expr
|
||||
let &g:aleph ..= expr
|
||||
let &g:aleph += expr
|
||||
let &g:aleph -= expr
|
||||
|
||||
let [foo, bar] = expr
|
||||
let [foo,
|
||||
\ bar] = expr
|
||||
let [v:foo, v:bar] = expr
|
||||
let [v:foo,
|
||||
\ v:bar] = expr
|
||||
let [&foo, &bar] = expr
|
||||
let [&foo,
|
||||
\ &bar] = expr
|
||||
let [v:true, v:false] = expr
|
||||
let [v:true,
|
||||
\ v:false] = expr
|
||||
let [&ari, &bkc] = expr
|
||||
let [&ari,
|
||||
\ &bkc] = expr
|
||||
let [$foo, $bar] = expr
|
||||
let [$foo,
|
||||
\ $bar] = expr
|
||||
@ -199,18 +199,18 @@ function Foo()
|
||||
let [foo,
|
||||
\ bar;
|
||||
\ baz] = expr
|
||||
let [v:foo, v:bar; v:baz] = expr
|
||||
let [v:foo,
|
||||
\ v:bar;
|
||||
\ v:baz] = expr
|
||||
let [v:true, v:false; v:none] = expr
|
||||
let [v:true,
|
||||
\ v:false;
|
||||
\ v:none] = expr
|
||||
let [$foo, $bar; $baz] = expr
|
||||
let [$foo,
|
||||
\ $bar;
|
||||
\ $baz] = expr
|
||||
let [&foo, &bar; &baz] = expr
|
||||
let [&foo,
|
||||
\ &bar;
|
||||
\ &baz] = expr
|
||||
let [&ari, &bkc; &cmp] = expr
|
||||
let [&ari,
|
||||
\ &bkc;
|
||||
\ &cmp] = expr
|
||||
let [@a, @b; @c] = expr
|
||||
let [@a,
|
||||
\ @b;
|
||||
@ -380,5 +380,34 @@ END
|
||||
unlockvar 2 foo | echo "Foo"
|
||||
unlockvar 2 foo bar " comment
|
||||
unlockvar 2 foo bar | echo "Foo"
|
||||
|
||||
" Scope dictionaries
|
||||
|
||||
echo get(b:, 'foo', 42)
|
||||
echo get(w:, 'foo', 42)
|
||||
echo get(t:, 'foo', 42)
|
||||
echo get(g:, 'foo', 42)
|
||||
echo get(l:, 'foo', 42)
|
||||
echo get(s:, 'foo', 42)
|
||||
echo get(a:, 'foo', 42)
|
||||
echo get(v:, 'foo', 42)
|
||||
|
||||
for k in keys(b:) | echo b:[k] | endfor
|
||||
for k in keys(w:) | echo w:[k] | endfor
|
||||
for k in keys(t:) | echo t:[k] | endfor
|
||||
for k in keys(g:) | echo g:[k] | endfor
|
||||
for k in keys(l:) | echo l:[k] | endfor
|
||||
for k in keys(s:) | echo s:[k] | endfor
|
||||
for k in keys(a:) | echo a:[k] | endfor
|
||||
for k in keys(v:) | echo v:[k] | endfor
|
||||
|
||||
" Neovim-specific variables (not highlighted by default)
|
||||
|
||||
echo v:lua v:msgpack_types v:relnum v:stderr v:termrequest v:virtnum
|
||||
|
||||
echo &channel &inccommand &mousescroll &pumblend &redrawdebug &scrollback
|
||||
echo &shada &shadafile &statuscolumn &termpastefilter &termsync &winbar
|
||||
echo &winblend &winhighlight
|
||||
|
||||
endfunction
|
||||
|
||||
|
||||
9
runtime/syntax/testdir/input/vim_nvim_variables.vim
Normal file
9
runtime/syntax/testdir/input/vim_nvim_variables.vim
Normal file
@ -0,0 +1,9 @@
|
||||
" Neovim variable highlighting
|
||||
" VIM_TEST_SETUP let g:vimsyn_vim_features = ["nvim"]
|
||||
|
||||
echo v:lua v:msgpack_types v:relnum v:stderr v:termrequest v:virtnum
|
||||
|
||||
echo &channel &inccommand &mousescroll &pumblend &redrawdebug &scrollback
|
||||
echo &shada &shadafile &statuscolumn &termpastefilter &termsync &winbar
|
||||
echo &winblend &winhighlight
|
||||
|
||||
@ -31,8 +31,8 @@ let b:foo[:2] = expr
|
||||
let b:foo[1:] = expr
|
||||
let b:foo[:] = expr
|
||||
|
||||
let bfoo["key"] = expr
|
||||
let bfoo['key'] = expr
|
||||
let b:foo["key"] = expr
|
||||
let b:foo['key'] = expr
|
||||
|
||||
let b:foo += expr
|
||||
let b:foo -= expr
|
||||
@ -102,25 +102,25 @@ let t:foo %= expr
|
||||
let t:foo .= expr
|
||||
let t:foo ..= expr
|
||||
|
||||
let v:foo = expr
|
||||
let v:true = expr
|
||||
|
||||
let v:foo[0] = expr
|
||||
let v:true[0] = expr
|
||||
|
||||
let v:foo[1:2] = expr
|
||||
let v:foo[:2] = expr
|
||||
let v:foo[1:] = expr
|
||||
let v:foo[:] = expr
|
||||
let v:true[1:2] = expr
|
||||
let v:true[:2] = expr
|
||||
let v:true[1:] = expr
|
||||
let v:true[:] = expr
|
||||
|
||||
let v:foo["key"] = expr
|
||||
let v:foo['key'] = expr
|
||||
let v:true["key"] = expr
|
||||
let v:true['key'] = expr
|
||||
|
||||
let v:foo += expr
|
||||
let v:foo -= expr
|
||||
let v:foo *= expr
|
||||
let v:foo /= expr
|
||||
let v:foo %= expr
|
||||
let v:foo .= expr
|
||||
let v:foo ..= expr
|
||||
let v:true += expr
|
||||
let v:true -= expr
|
||||
let v:true *= expr
|
||||
let v:true /= expr
|
||||
let v:true %= expr
|
||||
let v:true .= expr
|
||||
let v:true ..= expr
|
||||
|
||||
let w:foo = expr
|
||||
|
||||
@ -150,38 +150,38 @@ let @f = expr
|
||||
let @f .= expr
|
||||
let @f ..= expr
|
||||
|
||||
let &foo = expr
|
||||
let &ari = expr
|
||||
|
||||
let &t_k1 = "\<Esc>[234;"
|
||||
|
||||
let &foo .= expr
|
||||
let &foo ..= expr
|
||||
let &foo += expr
|
||||
let &foo -= expr
|
||||
let &ari .= expr
|
||||
let &ari ..= expr
|
||||
let &ari += expr
|
||||
let &ari -= expr
|
||||
|
||||
let &l:foo = expr
|
||||
let &l:aleph = expr
|
||||
|
||||
let &l:foo .= expr
|
||||
let &l:foo ..= expr
|
||||
let &l:foo += expr
|
||||
let &l:foo -= expr
|
||||
let &l:aleph .= expr
|
||||
let &l:aleph ..= expr
|
||||
let &l:aleph += expr
|
||||
let &l:aleph -= expr
|
||||
|
||||
let &g:foo = expr
|
||||
let &g:aleph = expr
|
||||
|
||||
let &g:foo .= expr
|
||||
let &g:foo ..= expr
|
||||
let &g:foo += expr
|
||||
let &g:foo -= expr
|
||||
let &g:aleph .= expr
|
||||
let &g:aleph ..= expr
|
||||
let &g:aleph += expr
|
||||
let &g:aleph -= expr
|
||||
|
||||
let [foo, bar] = expr
|
||||
let [foo,
|
||||
\ bar] = expr
|
||||
let [v:foo, v:bar] = expr
|
||||
let [v:foo,
|
||||
\ v:bar] = expr
|
||||
let [&foo, &bar] = expr
|
||||
let [&foo,
|
||||
\ &bar] = expr
|
||||
let [v:true, v:false] = expr
|
||||
let [v:true,
|
||||
\ v:false] = expr
|
||||
let [&ari, &bkc] = expr
|
||||
let [&ari,
|
||||
\ &bkc] = expr
|
||||
let [$foo, $bar] = expr
|
||||
let [$foo,
|
||||
\ $bar] = expr
|
||||
@ -198,18 +198,18 @@ let [foo, bar; baz] = expr
|
||||
let [foo,
|
||||
\ bar;
|
||||
\ baz] = expr
|
||||
let [v:foo, v:bar; v:baz] = expr
|
||||
let [v:foo,
|
||||
\ v:bar;
|
||||
\ v:baz] = expr
|
||||
let [v:true, v:false; v:none] = expr
|
||||
let [v:true,
|
||||
\ v:false;
|
||||
\ v:none] = expr
|
||||
let [$foo, $bar; $baz] = expr
|
||||
let [$foo,
|
||||
\ $bar;
|
||||
\ $baz] = expr
|
||||
let [&foo, &bar; &baz] = expr
|
||||
let [&foo,
|
||||
\ &bar;
|
||||
\ &baz] = expr
|
||||
let [&ari, &bkc; &cmp] = expr
|
||||
let [&ari,
|
||||
\ &bkc;
|
||||
\ &cmp] = expr
|
||||
let [@a, @b; @c] = expr
|
||||
let [@a,
|
||||
\ @b;
|
||||
@ -380,3 +380,31 @@ unlockvar 2 foo | echo "Foo"
|
||||
unlockvar 2 foo bar " comment
|
||||
unlockvar 2 foo bar | echo "Foo"
|
||||
|
||||
" Scope dictionaries
|
||||
|
||||
echo get(b:, 'foo', 42)
|
||||
echo get(w:, 'foo', 42)
|
||||
echo get(t:, 'foo', 42)
|
||||
echo get(g:, 'foo', 42)
|
||||
echo get(l:, 'foo', 42)
|
||||
echo get(s:, 'foo', 42)
|
||||
echo get(a:, 'foo', 42)
|
||||
echo get(v:, 'foo', 42)
|
||||
|
||||
for k in keys(b:) | echo b:[k] | endfor
|
||||
for k in keys(w:) | echo w:[k] | endfor
|
||||
for k in keys(t:) | echo t:[k] | endfor
|
||||
for k in keys(g:) | echo g:[k] | endfor
|
||||
for k in keys(l:) | echo l:[k] | endfor
|
||||
for k in keys(s:) | echo s:[k] | endfor
|
||||
for k in keys(a:) | echo a:[k] | endfor
|
||||
for k in keys(v:) | echo v:[k] | endfor
|
||||
|
||||
" Neovim-specific variables (not highlighted by default)
|
||||
|
||||
echo v:lua v:msgpack_types v:relnum v:stderr v:termrequest v:virtnum
|
||||
|
||||
echo &channel &inccommand &mousescroll &pumblend &redrawdebug &scrollback
|
||||
echo &shada &shadafile &statuscolumn &termpastefilter &termsync &winbar
|
||||
echo &winblend &winhighlight
|
||||
|
||||
|
||||
Reference in New Issue
Block a user