Ed Page
ba15b5f430
fix!: Rename Arg::number_of_values to Arg::num_args
2022-08-03 14:45:47 -05:00
Ed Page
0664c6db37
fix!: Remove Arg::use_value_delimiter in favor of Arg::value_delimiter
2022-08-03 11:15:29 -05:00
Ed Page
470531b515
fix!: Replace multiple_values
with number_of_values
...
This reduces ambiguity in how the different "multiple" parts of the API
interact and lowrs the amount of API surface area users have to dig
through to use clap.
For now, this is only a matter of cleaning up the public API. Cleaning
up the implementation is the next step.
2022-08-01 15:50:23 -05:00
Ed Page
76bff6f34e
fix!: Remove rest of deprecated APIs
...
Fixes #4009
2022-08-01 15:21:33 -05:00
Ed Page
40a9061c26
fix(parser): Include required argument in message
...
When suggesting required arguments, we wanted to avoid an argument
showing up in both a group and by itself but we didn't correctly
calculate that, causing no required arguments to show up at times.
Now, we all use the same pool of information for doing the calculations.
This was the type of cleanup that I expected it to drop our binary size
but this added 1k to our .text. Strange.
Fixes #4004
2022-07-29 19:54:32 -05:00
Ed Page
81bc351cfc
fix(help): Show when a flag 'ArgAction::Count's
2022-07-29 09:56:26 -05:00
Ed Page
7cf25008d5
refactor(test): Put expected values by tests
2022-07-29 09:51:28 -05:00
Ed Page
ac32c831fc
fix(help): Remove '...' for optional values
2022-07-29 09:44:29 -05:00
Ed Page
30f5b11d06
fix!: Replaced min_values
(tota) with number_of_values
(per occurrence)
2022-07-28 21:40:40 -05:00
Ed Page
ccf35ff70c
fix!: Replace min_values
(total) with number_of_values
(per occurrence)
2022-07-28 17:13:41 -05:00
Ed Page
ab8ef46663
fix: arg!(--long [value]) to per occurrence values
...
Before we did 0..=1 across all occurrences when what we really wanted
was 0..=1 per occurrence. This makes it compatible with
`ArgAction::Append`.
2022-07-28 16:52:30 -05:00
Ed Page
41535d5c46
feat: Extend number_of_values
to support min/max per occurrence
2022-07-28 16:52:25 -05:00
Ed Page
b4dfdcea15
fix!: Change number_of_values to be per occurrence
2022-07-28 16:52:16 -05:00
Ed Page
ae803e1410
test: Port macro/derive test to builder
...
Making sure we cover the expected experience from multiple perspectives
2022-07-28 16:52:06 -05:00
Ed Page
4f756c483f
fix(derive): Make consistent with arg!
...
This has the downside of a regression in `--help`. We expect to fix
that soon-ish.
2022-07-28 16:52:06 -05:00
Ed Page
5444b60361
test: Verify max_values cases for 0 values
2022-07-28 16:51:41 -05:00
Ed Page
355a8ff90c
fix!: number_of_values
doesn't always imply multiple_values(true)
...
With `number_of_values` being per-occurrence now, its doesn't make sense
for `number_of_values(0)` to set `takes_value(true)` or for
`number_of_values(1)` to set `multiple_values(true)`.
In addition, an assert is made if the user works around this
2022-07-28 14:40:58 -05:00
Ed Page
ef9d582464
refactor(test): Consolidate number_of_values tests
2022-07-28 13:28:39 -05:00
Ed Page
15d7f51e88
test(macros): Port optional-value test from derive to arg
2022-07-28 13:27:28 -05:00
Ed Page
6e9250d4ab
chore: Remove dead test file
2022-07-28 12:17:22 -05:00
Ed Page
67adc4acf9
fix(parser)!: Apply default_missing_value per occurrence
...
This both simplifies the code and the model we present to the user,
making more sense.
There is room for further exploration of tying flag actions into this.
2022-07-27 20:23:58 -05:00
Ed Page
5f20fe1930
docs: Shift focus from takes_value to actions
2022-07-26 14:50:51 -05:00
Ed Page
8ea1e2d4d3
fix!: Use value parsers for external subcommands
...
This changes the default type as well to encourage preserving the full
information for shelling out. If people need UTF-8, then they can
change the value parser.
Fixes #3733
2022-07-25 14:31:56 -05:00
Ed Page
13e672fb90
fix(assert)!: Prevent repeated subcommand names
...
Fixes #3888
2022-07-25 13:46:18 -05:00
Ed Page
6f03b4f948
fix!: Remove multiple occurrences in favor of Append/Count
...
For num_vals and friends, this only implements hacks until #2688
Fixes #3021
2022-07-25 13:23:43 -05:00
Ed Page
8c7fe8bb2f
Merge pull request #3986 from epage/override
...
fix(assert)!: Disallow self-overrides
2022-07-25 12:58:59 -05:00
Ed Page
ec38212dcb
fix(assert)!: Disallow self-overrides
...
This will make it easier to drop support for multiple occurrences
2022-07-25 12:46:16 -05:00
Ed Page
5a8e2046af
fix(assert)!: Ensure overrides_with IDs are valid
2022-07-25 12:26:32 -05:00
Emerson Ford
04e0ed7474
feat(clap_derive): Add default_values_t
and default_values_os_t
2022-07-25 10:14:04 -07:00
Ed Page
08e8642a8c
Merge pull request #3976 from epage/attrib
...
fix(derive)!: Remove value_parser/action defaulted attributes
2022-07-22 20:25:09 -05:00
Ed Page
6ecb7310a8
fix(derive)!: Remove value_parser/action defaulted attributes
2022-07-22 20:07:47 -05:00
Ed Page
122b562e6b
fix!: Change default actions to Set/SetTrue
...
This is in prep for removing StoreValue/IncOccurrences
2022-07-22 20:00:47 -05:00
Ed Page
0039ef91fa
fix: Have arg! collection across flags for positionals
2022-07-22 19:51:23 -05:00
Ed Page
11076a5c70
fix(help)!: Make DeriveDisplayOrder
the default, removing it
...
Force sorting with `next_display_order(None)`
Fixes #2808
2022-07-22 15:52:03 -05:00
Ed Page
389ff4ff21
fix(help): Subcommand display order respects Command::next_display_order
...
Previous behavior:
- They'd be sorted by default
- They'd derive display order if `DeriveDisplayOrder` was set
- This could be set recursively
- The initial display order value for subcommands was 0
New behavior:
- Sorted order is derived by default
- Sorting is turned on by `cmd.next_display_order(None)`
- This is not recursive, it must be set on each level
- The display order incrementing is mixed with arguments
- This does make it slightly more difficult to predict
2022-07-22 15:03:16 -05:00
Ed Page
e09a3321af
fix!: Ignore required when subcommands conflict with required
...
Fixes #3940
2022-07-22 14:10:27 -05:00
Ed Page
36dcb05d96
fix!: Change arg!
to use ArgAction
...
Fixes #3795
2022-07-22 13:24:40 -05:00
Ed Page
8b064cfee9
fix(derive): Move off of SubcommandRequiredElseHelp
...
This also let us remove the deprecated attribute
Fixes #3280
2022-07-22 12:33:31 -05:00
Ed Page
50019cacdc
Merge pull request #3967 from epage/parse
...
fix(derive)!: Remove deprecated parse attribute
2022-07-22 12:27:43 -05:00
Ed Page
7068586246
fix(derive)!: Remove deprecated parse
attribute
2022-07-22 12:14:29 -05:00
Ed Page
0d459128d7
fix(error)!: Merge UnrecognizedSubcommand into InvalidSubcommand
...
Fixes #3676
2022-07-22 12:12:35 -05:00
Ed Page
7307f22c73
fix(derive): Remove error check for old raw attributes
2022-07-22 11:41:00 -05:00
Ed Page
01a3ea425f
fix!: Remove unstable-v4
feature gate
2022-07-22 11:34:06 -05:00
Ed Page
16b0362807
fix(error):! Merge EmptyValue into InvalidValue
...
There isn't a reason to programmatically differentiate them so this
merges them simplify programamtic cases and to hopefully reduce binary
size.
2022-07-22 09:06:01 -05:00
Ed Page
1281e78dc0
test: Limp along
2022-07-21 17:08:35 -05:00
Ed Page
cf60f84894
fix!: Remove ArgSettings from the API
2022-07-21 16:17:44 -05:00
Ed Page
09c6405d5c
fix!: Remove validator
2022-07-21 16:05:39 -05:00
Ed Page
d7618c79af
fix!: Remove args_override_self
2022-07-21 15:45:12 -05:00
Ed Page
cd9cbb4c20
fix!: Remove ArgMatches::*value* functions
2022-07-21 14:24:16 -05:00
Ed Page
7d403fad78
test: Remove legacy cases
2022-07-21 13:38:24 -05:00