clap/clap_complete
David Aguilar 170bd59111 fix(complete): Handle multi-valued arguments
zsh completions for commands that have multiple Vec arguments require
special care.

We can have two Vec args separated with a value terminator.
We can also have two Vec args with no value terminators specified
where the final arg uses 'raw' and thus requires '--' to be used.

The 2nd of these scenarios requires special handling to avoid
emitting a duplicate '*:arguments' completion entry.

Currently, the zsh completions generate an error in this scenario:

    $ my-app <TAB>
    _arguments:...: doubled rest argument definition:
    *::second -- second set of of multi-length arguments:

We already use the '-S' option when calling _arguments.
This option makes it so that completion stops after '--' is encountered.
This means that the handling for trailing 'raw' arguments does not need
to specified.

Special-case multi-valued arguments so that we can skip emitting
the final multi-valued argument if a previous multi-valued argument
has already been emitted.

Closes #3022
Signed-off-by: David Aguilar <davvid@gmail.com>
2023-01-10 14:39:33 -08:00
..
examples docs(complete): Don't use deprecated API 2022-09-29 16:11:03 -05:00
src fix(complete): Handle multi-valued arguments 2023-01-10 14:39:33 -08:00
tests fix(complete): Handle multi-valued arguments 2023-01-10 14:39:33 -08:00
Cargo.toml chore: Switch to workspace inheritance 2023-01-09 12:35:54 -06:00
CHANGELOG.md chore: Release 2022-12-22 12:40:15 -06:00
CONTRIBUTING.md fix(complete): Give crates more specific names 2021-12-31 12:03:29 -06:00
LICENSE-APACHE fix(complete): Give crates more specific names 2021-12-31 12:03:29 -06:00
LICENSE-MIT docs(license): Update years/holders 2022-06-27 12:55:09 -05:00
README.md chore: Release 2022-12-22 12:40:15 -06:00

clap_complete

Shell completion generation for clap

Crates.io Crates.io License License

Dual-licensed under Apache 2.0 or MIT.

  1. About
  2. API Reference
  3. Questions & Discussions
  4. CONTRIBUTING
  5. Sponsors

About