b1cf0e258d
# Description Some command help has example results with nested `table` data which is displayed as the "non-expanded" form. E.g.: ```nu ╭───┬────────────────╮ │ 0 │ [list 2 items] │ │ 1 │ [list 2 items] │ ╰───┴────────────────╯ ``` For a good example, see `help zip`. While we could simply remove the offending Example `result`'s from the command itself, `std help` is capable of expanding the table properly. It already formats the output of each example result using `table`, so simply making it a `table -e` fixes the output. While I wish we had a way of expanding the tables in the builtin `help`, that seems to be the same type of problem as in formatting the `cal` output (see #11954). I personally think it's better to add this feature to `std help` than to remove the offending example results, but as long as `std help` is optional, only a small percentage of users are going to see the "expected" results. # User-Facing Changes Excerpt from `std help zip` before change: ```nu Zip two lists > [1 2] | zip [3 4] ╭───┬────────────────╮ │ 0 │ [list 2 items] │ │ 1 │ [list 2 items] │ ╰───┴────────────────╯ ``` After: ```nu Zip two lists > [1 2] | zip [3 4] ╭───┬───────────╮ │ 0 │ ╭───┬───╮ │ │ │ │ 0 │ 1 │ │ │ │ │ 1 │ 3 │ │ │ │ ╰───┴───╯ │ │ 1 │ ╭───┬───╮ │ │ │ │ 0 │ 2 │ │ │ │ │ 1 │ 4 │ │ │ │ ╰───┴───╯ │ ╰───┴───────────╯ ``` # Tests + Formatting - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - 🟢 `toolkit test` - 🟢 `toolkit test stdlib` - # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> |
||
---|---|---|
.. | ||
src | ||
std | ||
tests | ||
Cargo.toml | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
testing.nu |
Welcome to the standard library of `nushell`!
The standard library is a pure-nushell
collection of custom commands which
provide interactive utilities and building blocks for users writing casual scripts or complex applications.
To see what's here:
> use std
> scope commands | select name usage | where name =~ "std "
#┬───────────name────────────┬──────────────────────usage──────────────────────
0│std assert │Universal assert command
1│std assert equal │Assert $left == $right
2│std assert error │Assert that executing the code generates an error
3│std assert greater │Assert $left > $right
4│std assert greater or equal│Assert $left >= $right
... ...
─┴───────────────────────────┴─────────────────────────────────────────────────
🧰 Using the standard library in the REPL or in scripts
All commands in the standard library must be "imported" into the running environment
(the interactive read-execute-print-loop (REPL) or a .nu
script) using the
use
command.
You can choose to import the whole module, but then must refer to individual commands with a std
prefix, e.g:
use std
std log debug "Running now"
std assert (1 == 2)
Or you can enumerate the specific commands you want to import and invoke them without the std
prefix.
use std ["log debug" assert]
log debug "Running again"
assert (2 == 1)
This is probably the form of import you'll want to add to your env.nu
for interactive use.
✏️ contribute to the standard library
You're invited to contribute to the standard library! See CONTRIBUTING.md for details