1
0
mirror of https://github.com/nushell/nushell.git synced 2025-04-27 14:48:21 +02:00
nushell/crates
Andreas Källberg 8200831b07
Fix panic on too few arguments for custom function ()
# 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 
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 

## Bonus

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