nushell/crates
Ian Manske bae6d694ca
Refactor using ClosureEval types (#12541)
# Description
Adds two new types in `nu-engine` for evaluating closures: `ClosureEval`
and `ClosureEvalOnce`. This removed some duplicate code and centralizes
our logic for setting up, running, and cleaning up closures. For
example, in the future if we are able to reduce the cloning necessary to
run a closure, then we only have to change the code related to these
types.

`ClosureEval` and `ClosureEvalOnce` are designed with a builder API.
`ClosureEval` is used to run a closure multiple times whereas
`ClosureEvalOnce` is used for a one-shot closure.

# User-Facing Changes
Should be none, unless I messed up one of the command migrations.
Actually, this will fix any unreported environment bugs for commands
that didn't reset the env after running a closure.
2024-04-22 14:15:09 +08:00
..
nu_plugin_custom_values Bump version to 0.92.3 (#12476) 2024-04-12 08:00:43 -05:00
nu_plugin_example Bump version to 0.92.3 (#12476) 2024-04-12 08:00:43 -05:00
nu_plugin_formats Bump version to 0.92.3 (#12476) 2024-04-12 08:00:43 -05:00
nu_plugin_gstat Bump version to 0.92.3 (#12476) 2024-04-12 08:00:43 -05:00
nu_plugin_inc Bump version to 0.92.3 (#12476) 2024-04-12 08:00:43 -05:00
nu_plugin_nu_example Add an example Nushell plugin written in Nushell itself (#12574) 2024-04-19 09:53:30 +03:00
nu_plugin_polars Added commands for working with the plugin cache. (#12576) 2024-04-21 19:43:43 -05:00
nu_plugin_python Fix the error output in the python plugin to match LabeledError (#12575) 2024-04-18 20:01:35 -05:00
nu_plugin_query Bump version to 0.92.3 (#12476) 2024-04-12 08:00:43 -05:00
nu_plugin_stress_internals stress_internals: exit(1) on io error (#12612) 2024-04-21 23:48:09 +02:00
nu-cli Refactor using ClosureEval types (#12541) 2024-04-22 14:15:09 +08:00
nu-cmd-base Remove the Value::Block case (#12582) 2024-04-21 07:03:33 +02:00
nu-cmd-dataframe Upgrading nu-cmd-dataframe to polars 0.39 (#12554) 2024-04-17 12:50:17 -05:00
nu-cmd-extra Refactor using ClosureEval types (#12541) 2024-04-22 14:15:09 +08:00
nu-cmd-lang Overhaul the plugin cache file with a new msgpack+brotli format (#12579) 2024-04-21 07:36:26 -05:00
nu-cmd-plugin Overhaul the plugin cache file with a new msgpack+brotli format (#12579) 2024-04-21 07:36:26 -05:00
nu-color-config Refactor using ClosureEval types (#12541) 2024-04-22 14:15:09 +08:00
nu-command Refactor using ClosureEval types (#12541) 2024-04-22 14:15:09 +08:00
nu-engine Refactor using ClosureEval types (#12541) 2024-04-22 14:15:09 +08:00
nu-explore Replace subtraction of Instants and Durations with saturating subtractions (#12549) 2024-04-17 07:25:16 -05:00
nu-glob Bump version to 0.92.3 (#12476) 2024-04-12 08:00:43 -05:00
nu-json Bump version to 0.92.3 (#12476) 2024-04-12 08:00:43 -05:00
nu-lsp improve nu --lsp command tooltips (#12589) 2024-04-20 07:16:38 -05:00
nu-parser Overhaul the plugin cache file with a new msgpack+brotli format (#12579) 2024-04-21 07:36:26 -05:00
nu-path Bump version to 0.92.3 (#12476) 2024-04-12 08:00:43 -05:00
nu-plugin Refactor using ClosureEval types (#12541) 2024-04-22 14:15:09 +08:00
nu-plugin-test-support Local socket mode and foreground terminal control for plugins (#12448) 2024-04-15 18:28:18 +00:00
nu-pretty-hex Bump version to 0.92.3 (#12476) 2024-04-12 08:00:43 -05:00
nu-protocol Overhaul the plugin cache file with a new msgpack+brotli format (#12579) 2024-04-21 07:36:26 -05:00
nu-std Fix circular source causing Nushell to crash (#12262) 2024-04-19 09:38:08 +03:00
nu-system Replace subtraction of Instants and Durations with saturating subtractions (#12549) 2024-04-17 07:25:16 -05:00
nu-table Copy-on-write for record values (#12305) 2024-04-14 01:42:03 +00:00
nu-term-grid Bump version to 0.92.3 (#12476) 2024-04-12 08:00:43 -05:00
nu-test-support Overhaul the plugin cache file with a new msgpack+brotli format (#12579) 2024-04-21 07:36:26 -05:00
nu-utils Copy-on-write for record values (#12305) 2024-04-14 01:42:03 +00:00
nuon fix typo in the documentation of nuon::ToStyle (#12608) 2024-04-21 10:53:53 -05: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.