nushell/crates
Ian Manske aec41f3df0
Add Span merging functions (#12511)
# Description
This PR adds a few functions to `Span` for merging spans together:
- `Span::append`: merges two spans that are known to be in order.
- `Span::concat`: returns a span that encompasses all the spans in a
slice. The spans must be in order.
- `Span::merge`: merges two spans (no order necessary).
- `Span::merge_many`: merges an iterator of spans into a single span (no
order necessary).

These are meant to replace the free-standing `nu_protocol::span`
function.

The spans in a `LiteCommand` (the `parts`) should always be in order
based on the lite parser and lexer. So, the parser code sees the most
usage of `Span::append` and `Span::concat` where the order is known. In
other code areas, `Span::merge` and `Span::merge_many` are used since
the order between spans is often not known.
2024-05-16 22:34:49 +00:00
..
nu_plugin_custom_values Bump version to 0.93.1 (#12710) 2024-05-01 17:19:20 -05:00
nu_plugin_example Replace ExternalStream with new ByteStream type (#12774) 2024-05-16 07:11:18 -07:00
nu_plugin_formats Bump version to 0.93.1 (#12710) 2024-05-01 17:19:20 -05:00
nu_plugin_gstat Bump version to 0.93.1 (#12710) 2024-05-01 17:19:20 -05:00
nu_plugin_inc Bump version to 0.93.1 (#12710) 2024-05-01 17:19:20 -05:00
nu_plugin_nu_example Bump version to 0.93.1 (#12710) 2024-05-01 17:19:20 -05:00
nu_plugin_polars Add Span merging functions (#12511) 2024-05-16 22:34:49 +00:00
nu_plugin_python Bump version to 0.93.1 (#12710) 2024-05-01 17:19:20 -05:00
nu_plugin_query Bump version to 0.93.1 (#12710) 2024-05-01 17:19:20 -05:00
nu_plugin_stress_internals Upgrade to interprocess 2.0.0 (#12729) 2024-05-02 22:31:33 -07:00
nu-cli Replace ExternalStream with new ByteStream type (#12774) 2024-05-16 07:11:18 -07:00
nu-cmd-base Implement PWD recovery (#12779) 2024-05-10 11:06:33 -05:00
nu-cmd-dataframe Add Span merging functions (#12511) 2024-05-16 22:34:49 +00:00
nu-cmd-extra Replace ExternalStream with new ByteStream type (#12774) 2024-05-16 07:11:18 -07:00
nu-cmd-lang Replace ExternalStream with new ByteStream type (#12774) 2024-05-16 07:11:18 -07:00
nu-cmd-plugin Make the message when running a plugin exe directly clearer (#12806) 2024-05-07 20:12:32 -07:00
nu-color-config Replace ExternalStream with new ByteStream type (#12774) 2024-05-16 07:11:18 -07:00
nu-command Add Span merging functions (#12511) 2024-05-16 22:34:49 +00:00
nu-engine Replace ExternalStream with new ByteStream type (#12774) 2024-05-16 07:11:18 -07:00
nu-explore Replace ExternalStream with new ByteStream type (#12774) 2024-05-16 07:11:18 -07:00
nu-glob Bump version to 0.93.1 (#12710) 2024-05-01 17:19:20 -05:00
nu-json Minimize future false positive typos (#12751) 2024-05-04 15:00:44 +00:00
nu-lsp Refactor the CLI code a bit (#12782) 2024-05-10 07:29:27 +08:00
nu-parser Add Span merging functions (#12511) 2024-05-16 22:34:49 +00:00
nu-path Fix trailing slash in PWD set by cd (#12760) 2024-05-04 12:38:37 +03:00
nu-plugin Replace ExternalStream with new ByteStream type (#12774) 2024-05-16 07:11:18 -07:00
nu-plugin-core Replace ExternalStream with new ByteStream type (#12774) 2024-05-16 07:11:18 -07:00
nu-plugin-engine Replace ExternalStream with new ByteStream type (#12774) 2024-05-16 07:11:18 -07:00
nu-plugin-protocol Replace ExternalStream with new ByteStream type (#12774) 2024-05-16 07:11:18 -07:00
nu-plugin-test-support Replace ExternalStream with new ByteStream type (#12774) 2024-05-16 07:11:18 -07:00
nu-pretty-hex Bump version to 0.93.1 (#12710) 2024-05-01 17:19:20 -05:00
nu-protocol Add Span merging functions (#12511) 2024-05-16 22:34:49 +00:00
nu-std Update PR template (#12838) 2024-05-13 08:45:44 -05:00
nu-system Replace ExternalStream with new ByteStream type (#12774) 2024-05-16 07:11:18 -07:00
nu-table Avoid taking unnecessary ownership of intermediates (#12740) 2024-05-04 00:53:15 +00:00
nu-term-grid Bump version to 0.93.1 (#12710) 2024-05-01 17:19:20 -05:00
nu-test-support Avoid taking unnecessary ownership of intermediates (#12740) 2024-05-04 00:53:15 +00:00
nu-utils overhaul shell_integration to enable individual control over ansi escape sequences (#12629) 2024-05-02 09:56:50 -04:00
nuon Shrink Value by boxing Range/Closure (#12784) 2024-05-09 08:10:58 +08: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.