1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2025-05-11 15:34:06 +02:00

Fixed checkboxes in VIMSCRIPT_ROADMAP.md

This commit is contained in:
lippfi 2021-09-15 17:48:37 +03:00
parent 263fea1c52
commit 759d92db4d

View File

@ -1,60 +1,60 @@
# Vimscript
## Done in current release
[x] expressions: binary, unary, ternary, function calls, sublists, options, registers, variables, lists, dictionaries
[x] `if` condition
[x] `for` and `while` loops
[x] `try`/`catch`/`finally`
[x] function definition (without flags)
[x] `break`, `continue`, `throw`, `return`
[x] scopes: `g:`, `s:`, `l:`, `a:`, `b:`, `w:`, `t:` (the `v:` scope is not supported yet)
[x] `map <expr>`
- [x] expressions: binary, unary, ternary, function calls, sublists, options, registers, variables, lists, dictionaries
- [x] `if` condition
- [x] `for` and `while` loops
- [x] `try`/`catch`/`finally`
- [x] function definition (without flags)
- [x] `break`, `continue`, `throw`, `return`
- [x] scopes: `g:`, `s:`, `l:`, `a:`, `b:`, `w:`, `t:` (the `v:` scope is not supported yet)
- [x] `map <expr>`
## Plans for the next releases:
### IdeaVim 1.8.0
[] move `s:` scoped variables to `Script` class
[] move `l:` and `a:` scoped variables to the `FunctionDeclaration` class
[] `closure` function flag
[] `..` as concatenation operator
[] access dictionary value by `dict.key`
[] `abort` function flag
[] `range` function flag
[] `dict` function flag
[] dictionary functions
[] anonymous functions
[] lambdas
[] function as method
[] funcref type
[] default value in functions e.g. `function F1(a, b = 10)`
[] falsy operator `??`
[] pass Lists and Dictionaries by reference
[] variable locking (`lock`, `unlock`, `const`)
[] rewrite OptionManager to vim data types
[] scoped options
[] classic package structure
[] loggers loggers loggers
[] more loggers
- [ ] move `s:` scoped variables to `Script` class
- [ ] move `l:` and `a:` scoped variables to the `FunctionDeclaration` class
- [ ] `closure` function flag
- [ ] `..` as concatenation operator
- [ ] access dictionary value by `dict.key`
- [ ] `abort` function flag
- [ ] `range` function flag
- [ ] `dict` function flag
- [ ] dictionary functions
- [ ] anonymous functions
- [ ] lambdas
- [ ] function as method
- [ ] funcref type
- [ ] default value in functions e.g. `function F1(a, b = 10)`
- [ ] falsy operator `??`
- [ ] pass Lists and Dictionaries by reference
- [ ] variable locking (`lock`, `unlock`, `const`)
- [ ] rewrite OptionManager to vim data types
- [ ] scoped options
- [ ] classic package structure
- [ ] loggers loggers loggers
- [ ] more loggers
### IdeaVim 1.9.0
[] make `LibraryFunction` return `Result`
[] exception wrapping in try/catch
[] store exception messages in property file
[] store vim exception stacktrace in ExException
[] expression register (`<C-R>=`)
[] update tests to JUnit 5
[] rethink vimscript tests
[] delayed parsing of if/for/while etc.
[] `has("ide")` or "ide" option
[] `normal` command
[] `call` command
[] context dependent parsing e.g. `dict.key`
[] improve `w:` and `t:` scopes
[] `v:` scope
[] curly-braces-names
[] pass scopes to functions e.g. `for k in keys(s:)`
[] all the let command's cases (e.g. registers)
- [ ] make `LibraryFunction` return `Result`
- [ ] exception wrapping in try/catch
- [ ] store exception messages in property file
- [ ] store vim exception stacktrace in ExException
- [ ] expression register (`<C-R>=`)
- [ ] update tests to JUnit 5
- [ ] rethink vimscript tests
- [ ] delayed parsing of if/for/while etc.
- [ ] `has("ide")` or "ide" option
- [ ] `normal` command
- [ ] `call` command
- [ ] context dependent parsing e.g. `dict.key`
- [ ] improve `w:` and `t:` scopes
- [ ] `v:` scope
- [ ] curly-braces-names
- [ ] pass scopes to functions e.g. `for k in keys(s:)`
- [ ] all the let command's cases (e.g. registers)
## Less important things that might be added soon
[] add `-range` option to `command` command
- [ ] add `-range` option to `command` command