nushell/crates/nu-std/std/mod.nu
Douglas ad31f1cf26
Fix dirs removal warning (#14029)
# Description

* Primary purpose is to fix an issue with a missing escaped opening
parenthesis in the warning message when running an old `dirs` alias.
This was creating an error condition from improper interpolation.

Also

* Incorporates #13842 feedback from @kubouch by renaming `std/lib` to
`std/util`
* Removes duplication of code in `export-env`
* Renames submodule exports to `std/<submodule>` rather than
`./<submodule>` - No user-facing change other than `view files` appears
"prettier".
* In #13842, I converted the test cases to use `use std/<module>`
syntax. Previously, the tests were (effectively) using `use std *` (due
to pre-existing bugs, now fixed).

So "before", we only had test coverage on `use std *`, and "after" we
only had test coverage on `use std/<module>`. I've started adding test
cases so that we have coverage on *both* scenarios going forward.

For now, `formats` and `util` have been updated with tests for both
scenarios. I'll continue adding the others in future PRs.

# User-Facing Changes

No user-facing changes - Bug fix, refactor, and test cases only

# Tests + Formatting

- 🟢 `toolkit fmt`
- 🟢 `toolkit clippy`
- 🟢 `toolkit test`
- 🟢 `toolkit test stdlib`

# After Submitting

Still working on updating the Doc. I ran into the `dirs` issue while
writing it and rabbit-trailed to fix it in this PR.
2024-10-09 08:03:33 -05:00

34 lines
683 B
Text

# std.nu, `used` to load all standard library components
# Top-level commands: ellie, repeat, null-device, and "path add"
export use std/util *
# std submodules
export module std/assert
export module std/bench
export module std/dt
export module std/formats
export module std/help
export module std/input
export module std/iter
export module std/log
export module std/math
export module std/xml
# Load main dirs command and all subcommands
export use std/dirs main
export module dirs {
export use std/dirs [
add
drop
next
prev
goto
]
}
# Workaround for #13403 to load export-env blocks from submodules
export-env {
use std/log []
use std/dirs []
}