nushell/crates
Darren Schroeder 8f4feeb119
add config flatten command (#14621)
# Description

This is supposed to be a Quality-of-Life command that just makes some
things easier when dealing with a nushell config. Really all it does is
show you the current config in a flattened state. That's it. I was
thinking this could be useful when comparing config settings between old
and new config files. There are still room for improvements. For
instance, closures are listed as an int. They can be updated with a
`view source <int>` pipeline but that could all be built in too.


![image](https://github.com/user-attachments/assets/5d8981a3-8d03-4eb3-8361-2f3c3c560660)

The command works by getting the current configuration, serializing it
to json, then flattening that json. BTW, there's a new flatten_json.rs
in nu-utils. Theoretically all this mess could be done in a custom
command script, but it's proven to be exceedingly difficult based on the
work from discord.

Here's some more complex items to flatten.

![image](https://github.com/user-attachments/assets/b44e2ec8-cf17-41c4-bf8d-7f26317db071)

# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->

# 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` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the
tests for the standard library

> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->

# 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.
-->
2024-12-18 15:50:16 -06:00
..
nu-cli Revert "Feature: PWD-per-drive to facilitate working on multiple drives at Windows" (#14598) 2024-12-16 13:52:07 -06:00
nu-cmd-base Start to Add WASM Support Again (#14418) 2024-11-30 07:57:11 -06:00
nu-cmd-extra remove the deprecated index argument from filter commands' closure signature (#14594) 2024-12-15 15:27:13 -06:00
nu-cmd-lang update shadow-rs to 0.37 (#14617) 2024-12-18 23:09:50 +08:00
nu-cmd-plugin Allow both NU_PLUGIN_DIRS const and env at the same time (#14553) 2024-12-11 11:41:06 -06:00
nu-color-config Start to Add WASM Support Again (#14418) 2024-11-30 07:57:11 -06:00
nu-command add config flatten command (#14621) 2024-12-18 15:50:16 -06:00
nu-derive-value Bump to dev version 0.100.1 (#14328) 2024-11-14 10:04:39 +01:00
nu-engine Revert "Feature: PWD-per-drive to facilitate working on multiple drives at Windows" (#14598) 2024-12-16 13:52:07 -06:00
nu-explore explore: add more less key bindings and add Transition::None (#14468) 2024-11-30 08:22:52 -06:00
nu-glob skip test_iteration_errors if /root is missing (#14299) 2024-11-14 10:13:04 +01:00
nu-json Bump to dev version 0.100.1 (#14328) 2024-11-14 10:04:39 +01:00
nu-lsp lsp and --ide-check fix for path self related diagnostics (#14538) 2024-12-07 09:46:52 -06:00
nu-parser Revert "For # to start a comment, then it either need to be the first chara…" (#14606) 2024-12-17 06:26:56 -06:00
nu-path Revert "Feature: PWD-per-drive to facilitate working on multiple drives at Windows" (#14598) 2024-12-16 13:52:07 -06:00
nu-plugin Start to Add WASM Support Again (#14418) 2024-11-30 07:57:11 -06:00
nu-plugin-core Bump to dev version 0.100.1 (#14328) 2024-11-14 10:04:39 +01:00
nu-plugin-engine add function to make env vars case-insensitive (#14390) 2024-12-03 20:47:58 -06:00
nu-plugin-protocol Bump to dev version 0.100.1 (#14328) 2024-11-14 10:04:39 +01:00
nu-plugin-test-support Bump to dev version 0.100.1 (#14328) 2024-11-14 10:04:39 +01:00
nu-pretty-hex Bump to dev version 0.100.1 (#14328) 2024-11-14 10:04:39 +01:00
nu-protocol Revert "Feature: PWD-per-drive to facilitate working on multiple drives at Windows" (#14598) 2024-12-16 13:52:07 -06:00
nu-std std/iter scan: change closure signature to be consistent with reduce (#14596) 2024-12-16 06:13:51 -06:00
nu-system Cut down unnecessary lint allows (#14335) 2024-11-15 19:24:39 +01:00
nu-table Start to Add WASM Support Again (#14418) 2024-11-30 07:57:11 -06:00
nu-term-grid Start to Add WASM Support Again (#14418) 2024-11-30 07:57:11 -06:00
nu-test-support Remove the NU_DISABLE_IR option (#14293) 2024-11-15 12:09:25 +08:00
nu-utils add config flatten command (#14621) 2024-12-18 15:50:16 -06:00
nu_plugin_custom_values Start to Add WASM Support Again (#14418) 2024-11-30 07:57:11 -06:00
nu_plugin_example Remove ListStream type (#14425) 2024-11-27 09:35:55 +08:00
nu_plugin_formats Add Filesize type (#14369) 2024-11-29 21:24:17 +00:00
nu_plugin_gstat Bump to dev version 0.100.1 (#14328) 2024-11-14 10:04:39 +01:00
nu_plugin_inc Bump to dev version 0.100.1 (#14328) 2024-11-14 10:04:39 +01:00
nu_plugin_nu_example Bump to dev version 0.100.1 (#14328) 2024-11-14 10:04:39 +01:00
nu_plugin_polars Added flag --coalesce-columns to allow columns to be coalsced on full joins (#14578) 2024-12-17 09:55:42 -08:00
nu_plugin_python Bump to dev version 0.100.1 (#14328) 2024-11-14 10:04:39 +01:00
nu_plugin_query Bump scraper from 0.21.0 to 0.22.0 (#14557) 2024-12-11 09:40:09 +08:00
nu_plugin_stress_internals Bump to dev version 0.100.1 (#14328) 2024-11-14 10:04:39 +01:00
nuon Start to Add WASM Support Again (#14418) 2024-11-30 07:57:11 -06: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.