- expressions: binary, unary, ternary, function calls, sublists, options, registers, variables, lists, dictionaries
-
ifcondition -
forandwhileloops -
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 toScriptclass - move
l:anda:scoped variables to theFunctionDeclarationclass -
closurefunction flag -
..as concatenation operator - falsy operator
?? - access dictionary value by
dict.key -
abortfunction flag -
rangefunction flag -
callcommand - optional arguments
... - funcref type
- lambdas
- function as method
-
functionfunction -
funcreffunction -
dictfunction 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
-
finishstatement - pass Lists and Dictionaries by reference
- variable locking
- rewrite OptionManager to vim data types
- scoped options
-
normalcommand - expression register (
<C-R>=)
-
Resultclass 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
-rangeoption tocommandcommand - better strings (e.g.
"\<Esc")