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

@ -26,7 +26,7 @@ print -e $"
(ansi red)Warning:(ansi reset) The 'std dirs' module will no longer automatically
be loaded in the next release. To continue using the Shells
feature, and to remove this warning, please add the following
to your startup configuration (typically env.nu or config.nu):
to your startup configuration \(typically env.nu or config.nu\):
use std/dirs shells-aliases *

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 []
}