nushell/crates
Ryan Devenney 072d2a919d
#8027 Hide implementation details in invalid cd call (#8049)
# Description

[GH issue](https://github.com/nushell/nushell/issues/8027)

The current error message for a cd command includes a Debug output of
the `io::Error` being returned from `canonicalize_with`, so it's been
replaced with a more user friendly and readable depiction of the error.

# User-Facing Changes

As described in the issue, I've changed the error message for a cd into
a directory that does not exist from:
```
/home/rdevenney/projects/open_source/nushell〉cd asdfasdf                                                                               02/11/2023 08:59:59 PM
Error: nu:🐚:directory_not_found (link)

 × Directory not found
   ╭─[entry #2:1:1]
 1 │ cd asdfasdf
   ·    ────┬───
   ·        ╰── directory not found
   ╰────
  help: IO Error: Os { code: 2, kind: NotFound, message: "No such file or directory" }
```
To:
```
/home/rdevenney/projects/open_source/nushell〉cd asdfasdf                                                                               02/11/2023 08:58:38 PM
Error: nu:🐚:directory_not_found (link)

  × Directory not found
   ╭─[entry #1:1:1]
 1 │ cd asdfasdf
   ·    ────┬───
   ·        ╰── directory not found
   ╰────
  help: IO Error: DirectoryNotFound
```
# Tests + Formatting

Don't forget to add tests that cover your changes.

Make sure you've run and fixed any issues with these commands:

- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect` to check that you're using the standard code
style
- `cargo test --workspace` to check that all tests pass

# 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.

---------

Co-authored-by: Reilly Wood <reilly.wood@icloud.com>
2023-02-13 02:24:48 +00:00
..
nu_plugin_custom_values Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu_plugin_example Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu_plugin_gstat Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu_plugin_inc Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu_plugin_python Fix typos by codespell (#7600) 2022-12-26 02:31:26 -05:00
nu_plugin_query Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-cli Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-color-config Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-command #8027 Hide implementation details in invalid cd call (#8049) 2023-02-13 02:24:48 +00:00
nu-engine Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-explore Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-glob Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-json Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-parser Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-path Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-plugin Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-pretty-hex Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-protocol Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-system Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-table Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-term-grid Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-test-support Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
nu-utils Disable auto-benchmark harness for crates (#8057) 2023-02-12 22:22:00 +00:00
README.md Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00

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.