nushell/TODO.md
2021-11-27 20:18:40 +13:00

73 lines
2.0 KiB
Markdown

# Todo
- [x] Env shorthand
- [x] String interpolation
- [x] Aliases
- [x] Env vars
- [x] Sub commands
- [x] Floats
- [x] Tests
- [x] Decl requires $ but shouldn't
- [x] alias highlighting at call site
- [x] refactor into subcrates
- [x] subcommand alias
- [x] type inference from successful parse (eg not `List<unknown>` but `List<int>`)
- [x] parsing tables
- [x] Block params
- [x] Ranges
- [x] Column path
- [x] ...rest without calling it rest
- [x] Iteration (`each`) over tables
- [x] Row conditions
- [x] Simple completions
- [x] Detecting `$it` currently only looks at top scope but should find any free `$it` in the expression (including subexprs)
- [x] Signature needs to make parameters visible in scope before block is parsed
- [x] Externals
- [x] Modules and imports
- [x] Exports
- [x] Source
- [x] Error shortcircuit (stopping on first error). Revised: errors emit first, but can be seen by commands.
- [x] Value serialization
- [x] Handling rows with missing columns during a cell path
- [x] finish operator type-checking
- [x] Config file loading
- [x] block variable captures
- [x] improved history and config paths
- [x] ctrl-c support
- [x] operator overflow
- [x] Support for `$in`
- [x] config system
- [x] plugins
- [ ] external plugin signatures
- [ ] external command signatures
- [ ] shells
- [ ] autoenv
- [ ] dataframes
- [ ] overlays (replacement for `autoenv`), adding modules to shells
- [ ] port over `which` logic
- [ ] port test support crate so we can test against sample files, including multiple inputs into the CLI
- [ ] benchmarking
- [ ] finish adding config properties
- [ ] system-agnostic test cases
- [ ] exit codes
- [ ] auto-cd
- [ ] length of time the command runs put in the env (CMD_DURATION_MS)
## Post-nushell merge:
- [ ] Input/output types
- [ ] let [first, rest] = [1, 2, 3] (design question: how do you pattern match a table?)
## Maybe:
- [ ] default param values?
- [ ] Unary not?
module git {
external fn "git clone" [
arg: int,
--flag: string(custom-completion), ????
] ;
}
plugin git { ... }