mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
runtime(vim): Update base-syntax, improve variable matching
- Match variables after operators, including line continuations. - Match option variables without leading whitespace. - Explicitly match expression subscripts. - Match Vim9 variables in LHS of assignments and method calls. - Match option variables (&option) with a dedicated syntax group like environment variables. - Match list literals, fixes: #5830 - Match :{un}lockvar arguments. - Match registers and environment variables in :let unpack lists. - Match lambda expressions - Match Vim9 scope blocks - Match variables in :for subject - Highlight user variables with Normal - Improve this/super keyword matching, fixes: #15970 closes: #16476 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
54d7f18c38
commit
1aa287e048
200
runtime/syntax/testdir/input/vim9_def_variables.vim
Normal file
200
runtime/syntax/testdir/input/vim9_def_variables.vim
Normal file
@@ -0,0 +1,200 @@
|
||||
vim9script
|
||||
|
||||
# Vim9 function variable highlighting
|
||||
|
||||
def Foo()
|
||||
# Declarations
|
||||
|
||||
var foo = expr
|
||||
|
||||
b:foo = expr
|
||||
g:foo = expr
|
||||
t:foo = expr
|
||||
w:foo = expr
|
||||
|
||||
v:foo = 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 += 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
|
||||
|
||||
&foo = expr
|
||||
|
||||
&t_k1 = "\<Esc>[234;"
|
||||
|
||||
&foo ..= expr
|
||||
|
||||
&foo += expr
|
||||
&foo -= expr
|
||||
|
||||
&l:foo = expr
|
||||
|
||||
&l:foo ..= expr
|
||||
&l:foo += expr
|
||||
&l:foo -= expr
|
||||
|
||||
&g:foo = expr
|
||||
|
||||
&g:foo ..= expr
|
||||
&g:foo += expr
|
||||
&g:foo -= expr
|
||||
|
||||
[foo, bar] = expr
|
||||
[foo,
|
||||
\ bar] = expr
|
||||
[v:foo, v:bar] = expr
|
||||
[v:foo,
|
||||
\ v:bar] = expr
|
||||
[&foo, &bar] = expr
|
||||
[&foo,
|
||||
\ &bar] = 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:foo, v:bar; v:baz] = expr
|
||||
[v:foo,
|
||||
\ v:bar;
|
||||
\ v:baz] = expr
|
||||
[$foo, $bar; $baz] = expr
|
||||
[$foo,
|
||||
\ $bar;
|
||||
\ $baz] = expr
|
||||
[&foo, &bar; &baz] = expr
|
||||
[&foo,
|
||||
\ &bar;
|
||||
\ &baz] = 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
|
||||
enddef
|
||||
|
||||
|
Reference in New Issue
Block a user