mirror of
https://github.com/nushell/nushell.git
synced 2025-05-07 00:12:58 +00:00
Should close #8704. # Description this PR - makes the error thrown by things like `ansi -e {invalid: "invalid"}` more explicit - makes the `ansi -e` example more explicit about valid / invalid keys # User-Facing Changes the error ```bash > ansi -e {invalid: "invalid"} Error: nu:🐚:incompatible_parameters × Incompatible parameters. ╭─[entry #1:1:1] 1 │ ansi -e {invalid: "invalid"} · ──────────┬───────── · ╰── unknown ANSI format key: expected one of ['fg', 'bg', 'attr'], found 'invalid' ╰──── ``` the new `ansi -e` example ```bash Use structured escape codes > let bold_blue_on_red = { # `fg`, `bg`, `attr` are the acceptable keys, all other keys are considered invalid and will throw errors. fg: '#0000ff' bg: '#ff0000' attr: b } $"(ansi -e $bold_blue_on_red)Hello Nu World(ansi reset)" Hello Nu World ``` # Tests + Formatting - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - ⚫ `toolkit test` - ⚫ `toolkit test stdlib` # After Submitting ``` $nothing ```
Nushell core libraries and plugins
These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.
Foundational libraries are split into two kinds of crates:
- Core crates - those crates that work together to build the Nushell language engine
- Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.
Plugins are likewise also split into two types:
- Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
- Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.