Commit graph

3885 commits

Author SHA1 Message Date
liudingming
a711fc3cf2 Use llvm-cov for more accurate coverage report 2021-08-01 15:11:27 +08:00
Pavan Kumar Sunkara
4abf5fefca
Merge pull request #2649 from ldm0/master
Fix `value_of` returns `None` when the first value group is empty
2021-07-31 22:57:22 +01:00
liudingming
ab119b342a Fix value_of returns None when the first value group is empty 2021-08-01 03:56:23 +08:00
patrick-gu
88dec14775
Fix order of arguments in help message with AllowMissingPositional (#2648)
* Fix small formatting error

I accidentally introduced this in #2642

* Fix order of arguments in help message with AllowMissingPositional
2021-07-31 07:39:23 +01:00
Pavan Kumar Sunkara
ff95eb2f5b
Merge pull request #2647 from clap-rs/msrv
Bump msrv to 1.54.0
2021-07-31 05:45:02 +01:00
Pavan Kumar Sunkara
619f4c153c Fix format 2021-07-30 23:01:05 +01:00
Pavan Kumar Sunkara
6994be4f15 Remove doc feature 2021-07-30 22:49:11 +01:00
Pavan Kumar Sunkara
75445b974e
Merge pull request #2633 from epage/value_name
fix(derive): Don't mix implicit and explicit `value_name`s
2021-07-30 10:40:33 +01:00
Pavan Kumar Sunkara
0cde7760dd
Merge pull request #2643 from ldm0/master
Fix attached_value abandoned even if it's not used.
2021-07-30 10:37:41 +01:00
Ed Page
52d3942ba6 fix(derive): Reduce compiler error noise
It looks like CI hasn't been running on this and we've introduced some
problems.  It looks like we had an off-by-one error in the check for
MSRV for deciding to run ui tests.
2021-07-30 10:19:21 +01:00
Ed Page
758e5f337f fix(docs): Ensure examples link works from rustdoc 2021-07-30 10:19:21 +01:00
Ed Page
241d183b9c Bump MSRV to 1.54.0
- This makes it so `doc` compiles on stable

Fixes #2618
2021-07-30 10:19:21 +01:00
liudingming
a419f25fdb Fix issue, add tests 2021-07-30 15:39:34 +08:00
liudingming
3791f7e5ad Fix long_arg 2021-07-30 15:39:34 +08:00
liudingming
5ab16f7199 Improve parse_long_arg 2021-07-30 15:39:34 +08:00
liudingming
e8838e1794 fix clippy 2021-07-30 15:39:34 +08:00
liudingming
9509372f12 Improve parse_opt 2021-07-30 15:39:34 +08:00
Pavan Kumar Sunkara
6ea223bc6e
Merge pull request #2644 from ldm0/clippy
Fix clippy
2021-07-30 08:38:34 +01:00
Pavan Kumar Sunkara
ebc28c096f
Merge pull request #2642 from patrick-gu/master
Replace "Prints" with "Print" for default help and version commands
2021-07-30 08:35:49 +01:00
liudingming
44b7eee404 Fix clippy 2021-07-30 13:36:38 +08:00
patrick-gu
a4dc72ed19 Replace "Prints" with "Print" for default help and version commands 2021-07-29 20:23:25 -07:00
Pavan Kumar Sunkara
8ca62aa185
Merge pull request #2636 from epage/typo
fix(example): Use correct type in comment
2021-07-28 21:40:19 +01:00
Ed Page
c27b2e299c fix(example): Use correct type in comment
Fixes #2631
2021-07-28 10:34:48 -05:00
Ed Page
78aa86cfbb fix(derive): Don't mix implicit and explicit value_names
It turns out `value_name` appends, so by setting an implicit and
explicit `value_name`, the user gets both and `num_vals=2`.

There is still a question on `value_name` and whether its documentation
or behavior needs updating.  If that changes, then this can be
simplified by reverting back.

Fixes #2632
2021-07-28 09:46:13 -05:00
Pavan Kumar Sunkara
35db529b36
Merge pull request #2630 from epage/flatten
fix(derive): Allow partial update of flattened Subcommand arguments
2021-07-27 19:04:41 +01:00
Ed Page
6a70c744e0 fix(derive): Allow partial update of flattened Subcommand arguments
When using `#[clap(flatten)]` inside of a `Subcommand`, we would do a
`from` instead of an `update`.

The challenge is knowing when we are
going into a flattened subcommand vs changing the variant.  To resolve
this, I added a `Subcommand:has_subcommand(name)` trait method that we
generate, so we can ask.
2021-07-27 12:14:53 -05:00
Pavan Kumar Sunkara
5fbd764b06
Merge pull request #2622 from patrick-gu/master
Refactor creation of `App` and `Arg` from YAML
2021-07-27 10:31:55 +01:00
Pavan Kumar Sunkara
34a0674c92
Merge pull request #2625 from epage/sub-sub
fix(derive): Allow partial update of Sub-Subcommands
2021-07-27 09:07:20 +01:00
Pavan Kumar Sunkara
3b2d23947b
Merge pull request #2611 from epage/value_name
fix(derive): Follow value_name convention
2021-07-27 09:06:39 +01:00
Pavan Kumar Sunkara
7ce5c36b42
Merge pull request #2612 from epage/default_value
feat(derive): Make it possible to use ArgEnum with default_value
2021-07-26 23:17:47 +01:00
Ed Page
d643fb3c32 feat(derive): Make it possible to use ArgEnum with default_value
This doesn't solve the problem end-to-end but at least makes it possible
to solve by the user and improve in the future.
2021-07-26 10:33:14 -05:00
Ed Page
746eb9d7bd fix(derive): Allow partial update of Sub-Subcommands
When using `#[clap(subcommand)]` inside of a Subcommand, we didn't
properly do an `update` but a `from`.

This is a part of #2605
2021-07-26 10:03:10 -05:00
Ed Page
c485ae517b fix(derive): Follow value_name convention
I debated putting this fix inside of the Builder API but I figure this
makes it so you "pay for what you use", with the derive API giving it to
you "for free".

A potential next step is to improve the default value name.  I tend to
use value_name to hint at how to use an argument, which correlates with
types.  We could add a
`ValueName::value_name(fallback: &str) -> &str` with impls for common
types, so we get more of a usage-based result.

Fixes #2608
2021-07-26 10:01:32 -05:00
patrick-gu
9b64ac2b45 Refactor creation of App and Arg from YAML
Improved the `impl`s of `From` for `&'help Yaml` to use expects with useful messages instead of unwraps. Also made changes to avoid potentially fetching redundant data from YAML hashes and unwrapping the same data multiple times. Finally, there are tests to ensure the panics are correct.
2021-07-25 15:24:43 -07:00
Pavan Kumar Sunkara
610d56d1c6
Merge pull request #2614 from epage/unwrap
fix: Provide context for panics
2021-07-25 15:12:06 +01:00
Pavan Kumar Sunkara
077d43beeb
Merge pull request #2606 from epage/subcommand
fix(derive): Allow partial update of Subcommand arguments
2021-07-25 14:34:37 +01:00
Pavan Kumar Sunkara
79e3b37ecc
Merge pull request #2604 from epage/exit
fix(exit): Be consistent in exit code
2021-07-25 14:32:47 +01:00
Pavan Kumar Sunkara
27311139c2
Merge pull request #2610 from ldm0/value_name
Print `value_name` `number_of_values` times with single value_name
2021-07-25 14:23:21 +01:00
Pavan Kumar Sunkara
378797a20e
Merge pull request #2609 from ldm0/default_val_usage
Don't show default_vals in smart usage
2021-07-25 14:20:29 +01:00
Ed Page
8087811136 fix: Provide context for panics
One of the challenges with #2255 is for the user to discover whats going
wrong.  This helps by at least telling people how they got into a bad
state and we can search for the code within the derive.
2021-07-21 16:53:05 -05:00
liudingming
62fa1e7454 Print value_name number_of_values times with single value_name 2021-07-21 03:38:58 +08:00
liudingming
6094520541 Don't show default_val in smart usage 2021-07-21 02:50:41 +08:00
Ed Page
6e24c849fb fix(exit): Be consistent in exit code
PR #1637 switched clap to report `64` on errors and then #1653 switch it
to `2`, but both missed a case.  This also documents the reason why inline
since I had to go and dig through the history to re-discover the
motivation.
2021-07-19 11:21:01 -05:00
Ed Page
976561869c fix(derive): Allow partial update of Subcommand arguments
Before, when doing an `update` involving subcommands, we generated
parsing rules for the `from` case instead, requiring all arguments to be
present.

This switches us to descending into `update` code and adds tests to
verify it works.

This is a part of #2605
2021-07-19 11:13:22 -05:00
Pavan Kumar Sunkara
8ff68080e6
Merge pull request #2603 from hosseind88/remove-a-redundant-word-in-AppSettings-NoBinaryName-enum-explanation
Remove a redundant word in AppSettings::NoBinaryName enum explanation
2021-07-19 15:03:17 +01:00
hosseind88
cc2e07ea61 Remove a redundant word in AppSettings::NoBinaryName enum explanation 2021-07-19 17:56:57 +04:30
Pavan Kumar Sunkara
d8f6878db8
Merge pull request #2593 from epage/skip
feat(derive): Allow skipping ArgEnum variants
2021-07-17 04:57:08 +01:00
Ed Page
c1e272ea6c feat(derive): Allow skipping ArgEnum variants
Depends on #2590
Fixes #2592
2021-07-16 17:04:20 -05:00
Pavan Kumar Sunkara
060c6da9ef
Merge pull request #2590 from epage/dead
fix(derive): Don't generate dead code
2021-07-16 22:57:29 +01:00
Ed Page
a8ba4c3b73 fix(derive): Don't generate dead code
When debugging #2586, I noticed we were developing match cases for
variant names that were flattened.  At minimum, this is dead code and at
worst this could cause the wrong behavior if a user does an update with
one of those names.

Depends on #2587

Fixes #2588
2021-07-16 15:39:52 -05:00