forked from extern/nushell
2.0 KiB
2.0 KiB
Todo
- Env shorthand
- String interpolation
- Aliases
- Env vars
- Sub commands
- Floats
- Tests
- Decl requires $ but shouldn't
- alias highlighting at call site
- refactor into subcrates
- subcommand alias
- type inference from successful parse (eg not
List<unknown>
butList<int>
) - parsing tables
- Block params
- Ranges
- Column path
- ...rest without calling it rest
- Iteration (
each
) over tables - Row conditions
- Simple completions
- Detecting
$it
currently only looks at top scope but should find any free$it
in the expression (including subexprs) - Signature needs to make parameters visible in scope before block is parsed
- Externals
- Modules and imports
- Exports
- Source
- Error shortcircuit (stopping on first error). Revised: errors emit first, but can be seen by commands.
- Value serialization
- Handling rows with missing columns during a cell path
- finish operator type-checking
- Config file loading
- block variable captures
- improved history and config paths
- ctrl-c support
- operator overflow
- Support for
$in
- config system
- 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
- 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 { ... }