nushell/crates
Devyn Cairns 2562e306b6
Improve handling of custom values in plugin examples (#12409)
# Description
Requested by @ayax79. This makes the custom value behavior more correct,
by calling the methods on the plugin to handle the custom values in
examples rather than the methods on the custom values themselves. This
helps for handle-type custom values (like what he's doing with
dataframes).

- Equality checking in `PluginTest::test_examples()` changed to use
`PluginInterface::custom_value_partial_cmp()`
- Base value rendering for `PluginSignature` changed to use
`Plugin::custom_value_to_base_value()`
- Had to be moved closer to `serve_plugin` for this reason, so the test
for writing signatures containing custom values was removed
- That behavior should still be tested to some degree, since if custom
values are not handled, signatures will fail to parse, so all of the
other tests won't work.

# User-Facing Changes

- `Record::sort_cols()` method added to share functionality required by
`PartialCmp`, and it might also be slightly faster
- Otherwise, everything should mostly be the same but better. Plugins
that don't implement special handling for custom values will still work
the same way, because the default implementation is just a pass-through
to the `CustomValue` methods.

# Tests + Formatting
- 🟢 `toolkit fmt`
- 🟢 `toolkit clippy`
- 🟢 `toolkit test`
- 🟢 `toolkit test stdlib`
2024-04-05 21:57:20 -05:00
..
nu_plugin_custom_values Fix deadlock on PluginCustomValue drop (#12418) 2024-04-05 21:57:00 -05:00
nu_plugin_example Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu_plugin_formats Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu_plugin_gstat Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu_plugin_inc Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu_plugin_python Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu_plugin_query Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-cli Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-cmd-base Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-cmd-dataframe Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-cmd-extra Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-cmd-lang Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-color-config Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-command Fix stop suggesting --trash when already enabled (issue #12361) (#12362) 2024-04-05 20:28:40 -05:00
nu-engine Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-explore Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-glob Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-json Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-lsp Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-parser Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-path Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-plugin Improve handling of custom values in plugin examples (#12409) 2024-04-05 21:57:20 -05:00
nu-plugin-test-support Improve handling of custom values in plugin examples (#12409) 2024-04-05 21:57:20 -05:00
nu-pretty-hex Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-protocol Improve handling of custom values in plugin examples (#12409) 2024-04-05 21:57:20 -05:00
nu-std Fix testing.nu import of std log (#12392) 2024-04-05 20:29:19 -05:00
nu-system Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-table Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-term-grid Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-test-support Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-utils Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04: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.