nushell/crates
panicbit 6b4d06d8a7
do not emit None mid-stream during parse (#9925)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #issue 

you can also mention related issues, PRs or discussions!
-->

# Description
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.

Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
Currently `parse` acts like a `.filter` over an iterator, except that it
emits `None` for elements that can't be parsed. This causes consumers of
the adapted iterator to stop iterating too early. The correct behaviour
is to keep pulling the inner iterator until either the end of it is
reached or an element can be parsed.

- this PR should close #9906 

# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
List streams won't be truncated anymore after the first parse failure.

# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.

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

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

- `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
- [x] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [x] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect -A clippy::result_large_err` to check that
you're using the standard code style
- [x] `cargo test --workspace` to check that all tests pass
  - 11 tests fail, but the same 11 tests fail on main as well
- [x] `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library

# 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.
-->
2023-08-06 06:17:03 -05:00
..
nu-cli Fix default prompt indicators (#9914) 2023-08-05 04:47:46 +12:00
nu-cmd-base bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-cmd-dataframe Merged overloaded commands (#9860) 2023-07-31 07:34:12 -05:00
nu-cmd-extra update format signature to allow record to be passed in (#9898) 2023-08-02 10:57:58 -05:00
nu-cmd-lang Module: support defining const and use const variables inside of function (#9773) 2023-08-01 07:09:52 +08:00
nu-color-config Simplify default style and match Rust code to config (#9900) 2023-08-03 08:06:51 +12:00
nu-command do not emit None mid-stream during parse (#9925) 2023-08-06 06:17:03 -05:00
nu-engine Module: support defining const and use const variables inside of function (#9773) 2023-08-01 07:09:52 +08:00
nu-explore Add an option to set header on border (style) (#9920) 2023-08-04 13:50:47 -05:00
nu-glob bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-json bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-parser Fixed the panic when type a statement similar to let f = 'f' $ in the nushell (#9851) 2023-08-02 04:21:40 +12:00
nu-path bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-plugin bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-pretty-hex bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-protocol Add an option to set header on border (style) (#9920) 2023-08-04 13:50:47 -05:00
nu-std rename from date format to format date (#9902) 2023-08-04 06:06:00 +12:00
nu-system Enable macOS foreground process handling (#9909) 2023-08-04 15:43:35 -05:00
nu-table Add an option to set header on border (style) (#9920) 2023-08-04 13:50:47 -05:00
nu-term-grid bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-test-support bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-utils add header_on_separator options to default_config.nu (#9922) 2023-08-05 07:24:20 +12:00
nu_plugin_custom_values bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu_plugin_example bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu_plugin_formats bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu_plugin_gstat Replace &Span with Span since Span is Copy (#9770) 2023-07-31 21:47:46 +02:00
nu_plugin_inc bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu_plugin_python remove vectorize_over_list from python plugin (#9905) 2023-08-03 16:46:48 +02:00
nu_plugin_query Replace &Span with Span since Span is Copy (#9770) 2023-07-31 21:47:46 +02: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.