1
0
Fork 0
vim/runtime/syntax/testdir/input/vim9_variables.vim
Daniel Baumann 0985b09abd
Adding upstream version 2:9.1.1230.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-21 11:09:31 +02:00

222 lines
2.9 KiB
VimL

vim9script
# Vim9 variable highlighting
# Declarations
var foo = expr
b:foo = expr
g:foo = expr
t:foo = expr
w:foo = expr
v:true = expr
$FOO = expr
var [foo, bar] = expr
var [foo,
\ bar] = expr
var [$foo, $bar] = expr
var [$foo,
\ $bar] = expr
var [foo, bar; baz] = expr
var [foo,
\ bar;
\ baz] = expr
var [$foo, $bar; $baz] = expr
var [$foo,
\ $bar;
\ $baz] = expr
var foo =<< END
...
END
var foo =<< trim END
...
END
var foo =<< eval END
...
END
var foo =<< trim eval END
...
END
var foo =<< eval trim END
...
END
# Assignments
foo = expr
foo[0] = expr
foo[1:2] = expr
foo[:2] = expr
foo[1:] = expr
foo[:] = expr
foo["key"] = expr
foo['key'] = expr
foo += expr
foo -= expr
foo *= expr
foo /= expr
foo %= expr
foo ..= expr
b:foo = expr
g:foo = expr
t:foo = expr
w:foo = expr
b:foo += expr
g:foo += expr
t:foo += expr
w:foo += expr
b:foo -= expr
g:foo -= expr
t:foo -= expr
w:foo -= expr
b:foo *= expr
g:foo *= expr
t:foo *= expr
w:foo *= expr
b:foo /= expr
g:foo /= expr
t:foo /= expr
w:foo /= expr
b:foo %= expr
g:foo %= expr
t:foo %= expr
w:foo %= expr
b:foo ..= expr
g:foo ..= expr
t:foo ..= expr
w:foo ..= expr
$FOO = expr
$FOO ..= expr
@f = expr
@f ..= expr
&ari = expr
&t_k1 = "\<Esc>[234;"
&ari ..= expr
&ari += expr
&ari -= expr
&l:aleph = expr
&l:aleph ..= expr
&l:aleph += expr
&l:aleph -= expr
&g:aleph = expr
&g:aleph ..= expr
&g:aleph += expr
&g:aleph -= 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
[@a, @b] = expr
[@a,
\ @a] = expr
[foo, bar] ..= expr
[foo, bar] += expr
[foo, bar] -= expr
[foo, bar] *= expr
[foo, bar] /= expr
[foo, bar] %= expr
[foo, bar; baz] = expr
[foo,
\ bar;
\ baz] = expr
[v:true, v:false; v:none] = expr
[v:true,
\ v:false;
\ v:none] = expr
[$foo, $bar; $baz] = expr
[$foo,
\ $bar;
\ $baz] = expr
[&ari, &bkc; &cmp] = expr
[&ari,
\ &bkc;
\ &cmp] = expr
[@a, @b; @c] = expr
[@a,
\ @b;
\ @c] = expr
foo =<< END
...
END
foo =<< trim END
...
END
foo =<< eval END
...
END
foo =<< trim eval END
...
END
foo =<< eval trim END
...
END
# :for
for foo in expr
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