nushell/crates
Andreas Källberg 8200831b07
Fix panic on too few arguments for custom function (#10395)
# Description
Old code was comparing remaining positional arguments with total number
of arguments, where it should've compared remaining positional with
with remaining arguments of any kind. This means that if a function was
given too few arguments, `calculate_end_span` would believe that it
actually had too many arguments, since after parsing the first few
arguments, the number of remaining arguments needed were fewer than the
*total* number of arguments, of which we had used several.

Fixes #9072
Fixes: https://github.com/nushell/nushell/issues/13930
Fixes: https://github.com/nushell/nushell/issues/12069
Fixes: https://github.com/nushell/nushell/issues/8385

Extracted from #10381

## Bonus

It also improves the error handling on missing positional arguments
before keywords (no longer crashing since #9851). Instead of just giving
the keyword to the parser for the missing positional, we give an
explicit error about a missing positional argument. I would like better
descriptions than "missing var_name" though, but I'm not sure if that's
available without

Old error
```
Error: nu::parser::parse_mismatch

  × Parse mismatch during operation.
   ╭─[entry #1:1:1]
 1 │ let = if foo
   ·     ┬
   ·     ╰── expected valid variable name
   ╰────
```

New error
```
Error: nu::parser::missing_positional

  × Missing required positional argument.
   ╭─[entry #18:1:1]
 1 │ let = foo
   ·    ┬
   ·    ╰── missing var_name
   ╰────
  help: Usage: let <var_name> = <initial_value>
```

# User-Facing Changes
The program `alias = = =` is no longer accepted by the parser
2024-09-27 23:39:45 +08:00
..
nu_plugin_custom_values Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_example Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_formats Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_gstat Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_inc Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_nu_example Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_polars Expose flag truncate-ragged-lines in polars open (#13939) 2024-09-27 06:54:46 -05:00
nu_plugin_python Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_query Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_stress_internals Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-cli Set current working directory at startup (#12953) 2024-09-25 13:04:26 -05:00
nu-cmd-base Set current working directory at startup (#12953) 2024-09-25 13:04:26 -05:00
nu-cmd-extra Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-cmd-lang Set current working directory at startup (#12953) 2024-09-25 13:04:26 -05:00
nu-cmd-plugin fix the ability to add a plugin by name instead of path (#13877) 2024-09-23 06:43:19 -05:00
nu-color-config Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-command fix ls_colors coloring in grid and ls (#13935) 2024-09-25 18:16:54 -05:00
nu-derive-value Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-engine Fix try not working with let, etc. (#13885) 2024-09-23 06:44:25 -05:00
nu-explore fix inspect and explore panics on empty records (#13893) 2024-09-25 07:48:16 -05:00
nu-glob Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-json Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-lsp Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-parser Fix panic on too few arguments for custom function (#10395) 2024-09-27 23:39:45 +08:00
nu-path Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-plugin Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-plugin-core Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-plugin-engine Fix try not working with let, etc. (#13885) 2024-09-23 06:44:25 -05:00
nu-plugin-protocol Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-plugin-test-support Fix try not working with let, etc. (#13885) 2024-09-23 06:44:25 -05:00
nu-pretty-hex Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-protocol Fix panic on too few arguments for custom function (#10395) 2024-09-27 23:39:45 +08:00
nu-std Set current working directory at startup (#12953) 2024-09-25 13:04:26 -05:00
nu-system Fix handling of stopped TUI applications on unix (#13741) 2024-09-24 06:44:58 -05:00
nu-table Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-term-grid Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-test-support Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-utils Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nuon Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +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.