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.
This commit is contained in:
Douglas
2024-10-09 09:03:33 -04:00
committed by GitHub
parent 99798ace7d
commit ad31f1cf26
8 changed files with 202 additions and 46 deletions

View File

@ -1,24 +1,24 @@
# std.nu, `used` to load all standard library components
# Top-level commands: ellie, repeat, null-device, and "path add"
export use lib *
export use std/util *
# std submodules
export module ./assert
export module ./bench
export module ./dt
export module ./formats
export module ./help
export module ./input
export module ./iter
export module ./log
export module ./math
export module ./xml
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 ./dirs main
export module ./dirs {
export use ./dirs [
export use std/dirs main
export module dirs {
export use std/dirs [
add
drop
next
@ -29,11 +29,6 @@ export module ./dirs {
# Workaround for #13403 to load export-env blocks from submodules
export-env {
# log
$env.NU_LOG_FORMAT = $env.NU_LOG_FORMAT? | default "%ANSI_START%%DATE%|%LEVEL%|%MSG%%ANSI_STOP%"
$env.NU_LOG_DATE_FORMAT = $env.NU_LOG_DATE_FORMAT? | default "%Y-%m-%dT%H:%M:%S%.3f"
# dirs
$env.DIRS_POSITION = 0
$env.DIRS_LIST = [($env.PWD | path expand)]
use std/log []
use std/dirs []
}