- expressions: binary, unary, ternary, function calls, sublists, options, registers, variables, lists, dictionaries
-
if
condition -
for
andwhile
loops -
try
/catch
/finally
- function definition (without flags)
-
break
,continue
,throw
,return
- scopes:
g:
,s:
,l:
,a:
,b:
,w:
,t:
(thev:
scope is not supported yet) -
map <expr>
- move
s:
scoped variables toScript
class - move
l:
anda:
scoped variables to theFunctionDeclaration
class -
closure
function flag -
..
as concatenation operator - falsy operator
??
- access dictionary value by
dict.key
-
abort
function flag -
range
function flag -
call
command - optional arguments
...
- funcref type
- lambdas
- function as method
-
function
function -
funcref
function -
dict
function flag - anonymous functions
- default value in functions e.g.
function F1(a, b = 10)
-
has("ide")
or "ide" option - reduce number of rules in grammar
- classic package structure
- support
for [a, b] in {expr}
- pass scopes to functions e.g.
for k in keys(s:)
- curly-braces-names
-
finish
statement - pass Lists and Dictionaries by reference
- variable locking
- rewrite OptionManager to vim data types
- scoped options
-
normal
command - expression register (
<C-R>=
)
-
Result
class that would store the exceptions - throwing multiple exceptions at once
- exception wrapping in try/catch
- store exception messages in property file
- store vim exception stacktrace
- executing context (script / command line) & better parent for executable
- classloading
- all the let command's cases (e.g. registers)
- vim "special" type
-
v:
scope - update tests to JUnit 5
- rethink vimscript tests
- loggers
- todos, warnings
- expressions in substitute command (
\=
) - vim status line and beautiful exceptions output
- improve
w:
andt:
scopes - context dependent parsing e.g.
dict.key
- add
-range
option tocommand
command - better strings (e.g.
"\<Esc"
)