Ed Page
dc5ce00162
Merge pull request #4026 from epage/require
...
fix!: Remove `Arg::rwquire_value_delimiter`
2022-08-04 00:48:19 -05:00
Ed Page
5d1ec08199
Merge pull request #4025 from epage/trailing2
...
fix(parser)!: Split on value delimiter after validating num_args
2022-08-04 00:29:41 -05:00
Ed Page
6b3a5bde6d
fix(parser)!: Split on value delimiter after validating num_args
...
This will allow `num_args(0..=1).value_delimiter(',')` to work properly.
This hacks in support for `require_value_delimiter` until we can remove
it.
This no longer recognzes value terminators in delimited lists.
It looks like there is a bug with recognizing value terminators in
positionals arguments. We'll need to dig into that more.
2022-08-04 00:14:41 -05:00
Ed Page
b731b6a826
Merge pull request #4024 from epage/cleanup
...
refactor(parser): Prep for more #2688 work
2022-08-04 00:10:57 -05:00
Ed Page
53836f583c
fixup! refactor(parser): Clarify where escaping is relevant
2022-08-03 23:53:33 -05:00
Ed Page
012de8daa2
Merge pull request #4023 from epage/num_args
...
fix!: num_args controls user args rather than parsed values
2022-08-03 23:49:44 -05:00
Ed Page
85ad452c9b
fix!: Remove Arg::rwquire_value_delimiter
...
In clap v3, `require_value_delimiter` activated an alternative parse
mode where
- `multiple_values` meant "multiple values within a single arg"
- `number_of_values` having no parse impact, only validation impact
- `value_names` being delimited values
For unbounded `number_of_values`, this is exactly what `value_delimiter`
provides. The only value is if someone wanted `value_name` to be
`<file1>,<file2>,...` which can be useful and we might look into adding
back in.
Alternatively, this could be used for cases like key-value pairs but
that has issues like not allowing the delimiter in the value which might
be ok in some cases but not others. We already instead document that
people should instead use `ValueParser` for this case.
In removing this, we remove points of confusion at how the different
multiple values and delimited value calls interact with each other. I
know I would set `require_value_delimiter(true).multiple_values(true)`
when it turns out all I needed was `value_delimiter(',')`.
This also reduces the API surface area which makes it easier to discover
what features we do provide.
While this isn't big, this is also yet another small step towards
reducing binary size and compile times.
2022-08-03 21:26:36 -05:00
Ed Page
69c4628b16
refactor(parser): Remove redundant code
2022-08-03 18:10:45 -05:00
Ed Page
deba6bdda5
refactor(parser): Clarify where escaping is relevant
2022-08-03 17:42:11 -05:00
Ed Page
e6577b284e
fix(assert)!: Prevent require equal when it won't work
2022-08-03 17:41:47 -05:00
Ed Page
1352be3d88
fix(parser): Further limit num_args to user values
2022-08-03 17:41:47 -05:00
Ed Page
03f747ba8b
fix(parser)!: Only apply num_args to user values
2022-08-03 17:41:42 -05:00
Ed Page
6dddf119ce
fix!: num_args
controls user args rather than parsed values
...
This mostly impacts use of delimiters.
2022-08-03 14:45:52 -05:00
Ed Page
ba15b5f430
fix!: Rename Arg::number_of_values to Arg::num_args
2022-08-03 14:45:47 -05:00
Ed Page
3bcde19b18
Merge pull request #4022 from epage/delim
...
fix!: Remove Arg::use_value_delimiter in favor of Arg::value_delimiter
2022-08-03 14:38:19 -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
fafb2d5763
Merge pull request #4020 from epage/mult
...
fix!: Replace multiple_values with number_of_values
2022-08-03 10:54:03 -05:00
Ed Page
f40447bc26
Merge pull request #4017 from dtolnay-contrib/delete
...
Delete seemingly stray cargo_example_derive file
2022-08-01 21:19:37 -05:00
David Tolnay
10137fbd33
chore: Delete seemingly stray cargo_example_derive file
2022-08-01 16:54:37 -07: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
8f6231010a
Merge pull request #4015 from epage/arg_enum
...
fix!: Remove rest of deprecated APIs
2022-08-01 15:34:41 -05:00
Ed Page
76bff6f34e
fix!: Remove rest of deprecated APIs
...
Fixes #4009
2022-08-01 15:21:33 -05:00
Ed Page
686d174e28
Merge pull request #4014 from nt591/patch-1
...
[Documentation] fix typo in arg.rs
2022-08-01 11:57:25 -05:00
Nikhil Thomas
823e5664cd
[Documentation] fix typo in arg.rs
2022-08-01 12:55:04 -04:00
Ed Page
3ac2afd824
Merge pull request #4011 from clap-rs/dependabot/cargo/proc-macro2-1.0.42
...
chore(deps): bump proc-macro2 from 1.0.40 to 1.0.42
2022-08-01 09:23:56 -05:00
Ed Page
3d65d5701e
Merge pull request #4010 from clap-rs/dependabot/cargo/terminal_size-0.2.1
...
chore(deps): bump terminal_size from 0.1.17 to 0.2.1
2022-08-01 09:23:45 -05:00
dependabot[bot]
44350b376e
chore(deps): bump proc-macro2 from 1.0.40 to 1.0.42
...
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2 ) from 1.0.40 to 1.0.42.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases )
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.40...1.0.42 )
---
updated-dependencies:
- dependency-name: proc-macro2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 07:04:51 +00:00
dependabot[bot]
0bf1627e05
chore(deps): bump terminal_size from 0.1.17 to 0.2.1
...
Bumps [terminal_size](https://github.com/eminence/terminal-size ) from 0.1.17 to 0.2.1.
- [Release notes](https://github.com/eminence/terminal-size/releases )
- [Commits](https://github.com/eminence/terminal-size/compare/v0.1.17...v0.2.1 )
---
updated-dependencies:
- dependency-name: terminal_size
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 07:04:43 +00:00
Ed Page
9037e93c72
docs: Update changelog
2022-07-29 20:55:02 -05:00
Ed Page
957709fe8a
Merge pull request #4005 from epage/error
...
fix(parser): Include required argument in message
2022-07-29 20:21:05 -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
d001952ac4
refactor(usage): Clarify required gathering
2022-07-29 19:23:29 -05:00
Ed Page
e2a6bbfa95
refactor(parser): Simplify calculation for more values
2022-07-29 15:04:03 -05:00
Ed Page
39e5a86391
fix: Update positional for new num_vals
2022-07-29 15:02:08 -05:00
Ed Page
b47464955c
refactor: Switch to getter for number_of_values
2022-07-29 14:51:02 -05:00
Ed Page
edc7ac359f
Merge pull request #4003 from epage/count
...
fix(help): Show when a flag 'ArgAction::Count's
2022-07-29 10:13:53 -05:00
Ed Page
7b8da03014
Merge pull request #4002 from epage/usage
...
fix(help): Remove '...' for optional values
2022-07-29 09:58:04 -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
ddef1cbf10
Merge pull request #4001 from epage/num_vals
...
fix!: Simplify min_values/max_values into number_of_values (per occurrence)
2022-07-29 07:04:20 -05:00
Ed Page
eee31e2e31
docs: Provide best practice by example
2022-07-28 21:50:32 -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
cf8e1fc319
fix(derive): Make Option<Option<T>>
work per occurrence
2022-07-28 16:52:30 -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