nushell/crates
Artemiy a9582e1c62
Nothing return type (#9935)
# Description
Fix #9928. When parsing input/output types `nothing` was incorrectly
coerced to `any`. This is addressed by changing how
[to_type](0ad1ad4277/crates/nu-protocol/src/syntax_shape.rs (L121))
method handles `nothing` syntax shape. Also `range` syntax shape is
addressed the same way.

# User-Facing Changes
`nothing` and `range` are correctly displayed in help and strictly
processed by type checking. This will break definitions that were not in
fact output nothing or range and incorrect uses of functions which input
nothing or range.

Examples of correctly defined functions:

![image](https://github.com/nushell/nushell/assets/17511668/d9f73438-d8a7-487f-981a-7e791b42766e)

![image](https://github.com/nushell/nushell/assets/17511668/2d5fe3a2-94be-4d25-9522-2ea38e528fe4)

Examples of incorrect definitions and uses of functions:

![image](https://github.com/nushell/nushell/assets/17511668/6a2f9fba-abfa-47fe-8b53-bb348e532cd8)

![image](https://github.com/nushell/nushell/assets/17511668/b1fbf9f6-fd75-4b80-9f38-26cc7c2ecc25)

![image](https://github.com/nushell/nushell/assets/17511668/718ef98b-3d7a-433d-af97-39a225ef34e5)


# 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 -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
> ```
-->

# 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-07 18:10:01 +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
nu-cli add keybinding for search-history (#9930) 2023-08-06 06:59:06 -05:00
nu-cmd-base bump to dev version 0.83.2 (#9866) 2023-07-30 22:16:57 +02:00
nu-cmd-dataframe Fix a couple clippy warnings (#9936) 2023-08-07 06:23:11 +12:00
nu-cmd-extra Cratification: move some str case commands to nu-cmd-extra (#9926) 2023-08-06 06:40:44 -07: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 Categorification: move Path commands out of the default category (#9937) 2023-08-07 16:03:23 +12: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 Nothing return type (#9935) 2023-08-07 18:10:01 +12: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 keybinding for search-history (#9930) 2023-08-06 06:59:06 -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.