nushell/crates
WindSoilder d2c87ad4b4
differentiating between --x and --x: bool (#10456)
# Description
Fixes: #10450 

This pr differentiating between `--x: bool` and `--x`

Here are examples which demostrate difference between them:
```nushell
def a [--x: bool] { $x };
a --x    # not allowed, you need to parse a value to the flag.
a        # it's allowed, and the value of `$x` is false, which behaves the same to `def a [--x] { $x }; a`
```

For boolean flag with default value, it works a little bit different to
#10450 mentioned:
```nushell
def foo [--option: bool = false] { $option }
foo                  # output false
foo --option         # not allowed, you need to parse a value to the flag.
foo --option true    # output true
```

# User-Facing Changes
After the pr, the following code is not allowed:
```nushell
def a [--x: bool] { $x }; a --x
```

Instead, you have to pass a value to flag `--x` like `a --x false`. But
bare flag works in the same way as before.

## Update: one more breaking change to help on #7260 
```
def foo [--option: bool] { $option == null }
foo
```
After the pr, if we don't use a boolean flag, the value will be `null`
instead of `true`. Because here `--option: bool` is treated as a flag
rather than a switch

---------

Co-authored-by: amtoine <stevan.antoine@gmail.com>
2023-09-23 10:20:48 +02:00
..
nu_plugin_custom_values Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu_plugin_example Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu_plugin_formats Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu_plugin_gstat Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu_plugin_inc Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu_plugin_python remove vectorize_over_list from python plugin (#9905) 2023-08-03 16:46:48 +02:00
nu_plugin_query Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-cli Transient prompt (#10391) 2023-09-22 14:35:09 -05:00
nu-cmd-base Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-cmd-dataframe Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-cmd-extra Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-cmd-lang Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-color-config Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-command differentiating between --x and --x: bool (#10456) 2023-09-23 10:20:48 +02:00
nu-engine Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-explore Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-glob Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-json Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-parser differentiating between --x and --x: bool (#10456) 2023-09-23 10:20:48 +02:00
nu-path Fix tilde-expansion for multi-byte unicode chars (#10434) 2023-09-21 04:04:28 +12:00
nu-plugin Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-pretty-hex Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-protocol Split up nu-protocol/src/engine/engine_state.rs (#10368) 2023-09-21 22:53:36 +02:00
nu-std differentiating between --x and --x: bool (#10456) 2023-09-23 10:20:48 +02:00
nu-system Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-table Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-term-grid Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-test-support Simplify nu! test macros. (#10403) 2023-09-21 20:11:56 +02:00
nu-utils Transient prompt (#10391) 2023-09-22 14:35:09 -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.