Commit graph

4379 commits

Author SHA1 Message Date
Pavan Kumar Sunkara
f371cfed29 fix: Better positional checks 2021-10-14 09:26:53 +01:00
Pavan Kumar Sunkara
2454dabc03 refactor: Remove get_flags API 2021-10-14 09:26:09 +01:00
bors[bot]
c5296977e5
Merge #2867
2867: fix(help)!: Merge OPTIONS / FLAGS default groups r=pksunkara a=epage



Co-authored-by: Ed Page <eopage@gmail.com>
2021-10-13 21:39:15 +00:00
Ed Page
61c9e6265b fix(help)!: Merge OPTIONS / FLAGS default groups
For those that want the original behavior, you can usxe
`arg.help_heading(Some("FLAGS"))` on your flags.  Limitations:
- This will not give you a special sort order
- This will not get a `[FLAGS]` added to usage

For templates, we removed `{unified}` and `{flags}`.  To help people
catch these, a debug_assert was added.

I'm unsure but I think there might be a change in behavior in calcuating
when to show `[OPTION]` in usage.  The old code only looked at
`required` while flags looked only at arg groups.  We now look at both.

Ideally we'd add these in `_build` and remove special casing for
no-groups except in the sort order of groups.  I feel like thats best
left for later.

This also reduced the scope of `App`s public API.
`get_*_with_no_heading` seemed a bit specialized to be in the public
API.  #2853 looks at splitting it out into its own PR.

BREAKING CHANGE: Multiple
- `UnifiedHelpMessage` removed
- `{flags}` and `{unified}` are removed and will assert when present.
- `get_*_with_no_heading` removed

Fixes #2807
2021-10-13 11:42:10 -05:00
bors[bot]
1f17d9e8ba
Merge #2851
2851: fix!: Make color settings an enum r=pksunkara a=pksunkara



Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2021-10-13 13:03:28 +00:00
Pavan Kumar Sunkara
efeb02cd34 fix!: Make color settings an enum 2021-10-13 13:54:44 +01:00
Pavan Kumar Sunkara
d46fd26c12 chore: Rename App::color to App::get_color 2021-10-13 02:20:04 +01:00
Richard Maw
694329b363 fixup! Make hostname a non-derive example and rename via Cargo.toml 2021-10-12 22:38:43 +01:00
bors[bot]
d833d667df
Merge #2863
2863: fix(gen): Ensure subcommands are post-processed r=pksunkara a=epage



Co-authored-by: Ed Page <eopage@gmail.com>
2021-10-12 21:23:54 +00:00
Ed Page
a61b60816c fix(gen): Ensure subcommands are post-processed
`App::get_matches` lazily post-processes `App`s and `Arg`s so we don't
do it to subcommands that are never run (downside being people have to
exercise their full app to get debug_asserts).

`clap_generate` was only post-processing the top-level `App` and `Arg`s,
ignoring the sub-commands.  In #2858, we noticed that `--version` was
being left in the completions instead of being removed during the
`_build` step.  We would also have an incorrect `num_vals` and a host of
other problems.

This change adds a `App::_build_all` function for `clap_generate` to use
to eagerly build everything.  By having it there, we make sure
everywhere that needs eager building, gets it (like some tests).

In `clap_generate::utils`, we add a unit test to ensure the subcommand's
`--version` was removed.

For some other tests specifying `.version()`, I added
`AppSettings::PropagateVersion` to make it behave more consistently.
The places I didn't were generally where the version was conditionally
set.

For `clap_generate/tests/generate_completions.rs`, I had to adjust the
`conflicts_with` because the subcommand was inheriting the argument with
it defined *but* the subcommand did not have the argument, tripping up a
debug assert.

Fixes #2860
2021-10-12 15:54:26 -05:00
bors[bot]
5f3fe4921a
Merge #2859
2859: Partial Revert of "Change MissingArgumentOrSubcommand to DisplayHelpO… r=pksunkara a=epage



Co-authored-by: Ed Page <eopage@gmail.com>
2021-10-12 20:16:27 +00:00
Richard Maw
b808729bbc fixup! Fill in tracking issue number 2021-10-12 20:51:26 +01:00
Richard Maw
b2180e9d72 fixup! Gate Multicall behind unstable feature 2021-10-12 20:35:59 +01:00
bors[bot]
93decf7424
Merge #2858
2858: Get Fig compiling and testing r=epage a=epage



Co-authored-by: Ed Page <eopage@gmail.com>
2021-10-12 19:09:52 +00:00
Ed Page
f48261a2a2 Partial Revert of "Change MissingArgumentOrSubcommand to DisplayHelpOnMissingArgumentOrSubcommand and don't use stderr"
This partially reverts commit 7f627fc.

This reverts the error code change but not the `ErrorKind` change.  I
was mixed on whether we should do that or not.  The benefit is it makes
it so people can check the Kind for cases like #2021.  On the other
hand, it doesn't seem that hard to re-implement the feature.

Fixes #2767
2021-10-12 14:09:08 -05:00
Richard Maw
a31d3b288d fixup! Revert: Make hostname a non-derive example and rename via Cargo.toml
tests/examples.rs:examples_are_functional finds examples by stripping
`.rs` off the basename
2021-10-12 20:01:59 +01:00
Richard Maw
1782f9d4ec fixup! Make hostname a non-derive example and rename via Cargo.toml 2021-10-12 19:57:32 +01:00
Ed Page
a61752a5d5 chore: Include fig in testing 2021-10-12 11:25:17 -05:00
Ed Page
d8b6016f57 fix(fig): Get tests passing 2021-10-12 11:00:34 -05:00
Ed Page
fa0deb03cf fix(fig): Get compiling 2021-10-12 11:00:34 -05:00
bors[bot]
1f958fab2e
Merge #2849
2849: Parser redux r=pksunkara a=epage



Co-authored-by: Ed Page <eopage@gmail.com>
2021-10-12 15:57:23 +00:00
bors[bot]
36e172672c
Merge #2855
2855: fix(gen)!: Simplify `Generator` trait r=pksunkara a=epage



Co-authored-by: Ed Page <eopage@gmail.com>
2021-10-12 14:50:55 +00:00
Ed Page
536471cb7d fix(gen)!: Simplify Generator trait
This is a followup to #2721 where we decided to remove all of the
helpers from the trait.  They are now in a `utils` mod.  A part of me
wants this module to be private but it'd be a lot to duplicate for the
split out modules.

Note: this doesn't update fig.  Fig was never added to the workspace and
is already broken (and not just from #2721).  My plan is to get this
merged and then fix Fig, rather than fix it in multiple passes.
2021-10-12 08:27:24 -05:00
Ed Page
60c9c2e59a docs(derive): Use more-specific traits
This helps to raise visibility of the new derive traits.

I didn't touch ui tests because there were a lot and they didn't seem to
be as high value.
2021-10-12 07:51:11 -05:00
bors[bot]
ab050441de
Merge #2829
2829: [clap_generate] [zsh] sort out multiple occurrence vs multiple_value. r=pksunkara a=pseyfert



Co-authored-by: Paul Seyfert <Paul.Seyfert@sevensense.ch>
2021-10-12 10:00:06 +00:00
Paul Seyfert
25e337adb1 [clap_generate] [zsh] sort out multiple occurrence vs multiple_value. 2021-10-12 10:48:37 +01:00
bors[bot]
6d046c7aac
Merge #2848
2848: fix: Deprecate Macro API r=pksunkara a=epage



Co-authored-by: Ed Page <eopage@gmail.com>
2021-10-12 07:36:50 +00:00
bors[bot]
404b44837f
Merge #2854
2854: Actually fix the whitespace because it is important r=epage a=pksunkara



Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2021-10-12 02:33:59 +00:00
Pavan Kumar Sunkara
0a61c8aa08 fix: Whitespace in our generators **is** important and we need to fix it 2021-10-12 02:08:11 +01:00
Pavan Kumar Sunkara
68d0338ddd chore: Minor doc and style changes 2021-10-12 02:08:11 +01:00
bors[bot]
a67aea232d
Merge #2852
2852: fix(help): Show [OPTIONS] with help_heading r=pksunkara a=epage



Co-authored-by: Ed Page <eopage@gmail.com>
2021-10-12 00:55:16 +00:00
Ed Page
350ab9daf7 fix(help): Show [OPTIONS] with help_heading
This was changed in #1989 without an explanation:
- In the help template, there isn't a way to expose with help_headings,
  so show all.
- In usage, we don't know whether the user wants to see `[FLAGS]` /
  `[OPTIONS]` or not, so let's default to showing them.
2021-10-11 19:13:53 -05:00
bors[bot]
74cbe0bf09
Merge #2721
2721: feat(generate): Give `Shell` superpowers to simplify getting started r=pksunkara a=epage



Co-authored-by: Ed Page <eopage@gmail.com>
2021-10-11 23:48:17 +00:00
Richard Maw
971b6b683e fixup! Move explanatory text from examples to docstring 2021-10-11 22:08:51 +01:00
bors[bot]
c2ebcf1326
Merge #2850
2850: fix: Add test for flattening struct in enum r=epage a=pksunkara



Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2021-10-11 21:04:34 +00:00
Pavan Kumar Sunkara
685601e002 fix: Add test for flattening struct in enum 2021-10-11 21:54:44 +01:00
Ed Page
0a53fafddf fix: Deprecate Macro API
Fixes #2835
2021-10-11 15:06:38 -05:00
Richard Maw
1ba4b98b8e fixup! trim hardlink implementation from busybox example 2021-10-11 20:51:33 +01:00
Richard Maw
d062f8f3ad fixup! Remove --install from tests/subcommands 2021-10-11 20:46:33 +01:00
Richard Maw
11492adb2c fixup! Fix rename of clap::Clap to Parser 2021-10-11 20:14:46 +01:00
Richard Maw
f14db03eec Add Multicall setting
If the AppSettings::Multicall setting is given
then argv0 is parsed as the first subcommand argument
or parsed as normal with any other name.
2021-10-11 20:00:24 +01:00
Ed Page
73bc22cc3d docs: Bridge the user to 'Shell'
In addition, this raises the visibility of the new `value_hint` feature.
2021-10-11 10:46:44 -05:00
Ed Page
96f2343e1b feat(generate): 'impl Generator for Shell'
This includes updating the example but does not include improving the
jumping-off documentation.
2021-10-11 10:46:44 -05:00
Ed Page
1bbfd956aa test: Harden tests against trailing whitespace
In a follow up commit, my editor stripped trailing whitespace.  Rather
than have everyone fight this, let's not make a deal over the small
stuff.
2021-10-11 10:44:48 -05:00
Ed Page
35d53d9dcf feat(generate): 'impl ArgEnum for Shell'
These keeps `FromStr` for ease of use with `value_of_t`.

This includes adding test to make sure everything works as expected.
2021-10-11 10:44:48 -05:00
bors[bot]
562e64c723
Merge #2845
2845: fix(help)!: Consoldiate color settings r=pksunkara a=epage



Co-authored-by: Ed Page <eopage@gmail.com>
2021-10-11 14:17:10 +00:00
Ed Page
6dd9d467ce fix(help)!: Consoldiate color settings
A lot of users expected `color` feature flag and `ColorAuto` etc to
control all colors.  Having this extra flag around is easy to miss and
adds to our overall settings bloat, making it harder to find settings
people want.

This completely removes it, rather than make it deprecated like
functions in #2617, because there is extra work to mark things
deprecated as Settings and we should decide on our strategy first before
investing time in addressing that issue.

Fixes #2806
2021-10-11 09:01:13 -05:00
bors[bot]
a63dcb35b5
Merge #2843
2843: add `App::get_long_about` r=pksunkara a=arxanas



Co-authored-by: Waleed Khan <me@waleedkhan.name>
2021-10-11 09:22:45 +00:00
Waleed Khan
e73ec0887d add App::get_long_about 2021-10-10 17:17:55 -07:00
bors[bot]
d97c038b1b
Merge #2814
2814: fix(derive)!: Rename `Clap` to `Parser`. r=pksunkara a=epage



Co-authored-by: Ed Page <eopage@gmail.com>
2021-10-10 01:21:47 +00:00