Commit graph

5256 commits

Author SHA1 Message Date
Ed Page
e8010e79a9 refactor: Update app variables to cmd 2022-02-14 15:55:56 -06:00
Ed Page
9a7e6a523d fix: Deprecate App 2022-02-14 15:34:27 -06:00
Ed Page
c4144d7d6c docs: Update App references to Command 2022-02-14 15:33:49 -06:00
Ed Page
524e164c31 fix: Rename App to Command 2022-02-14 15:32:07 -06:00
Ed Page
06b269a85a refactor: Rename Apps file 2022-02-14 15:29:26 -06:00
Ed Page
44d85344a9 refactor: Be consistent in mod visibility 2022-02-14 15:28:38 -06:00
Ed Page
182e5739c3
Merge pull request #3469 from gibfahn/fish_completion
fix(complete): escape fish possible values
2022-02-14 15:13:57 -06:00
Gibson Fahnestock
6f36ca3a25
fix(complete): escape fish possible values
Fixes: https://github.com/clap-rs/clap/issues/3467
2022-02-14 20:58:57 +00:00
Gibson Fahnestock
0fbabaa3fe
test(completion): add regression test for fish quoting issue 2022-02-14 20:55:06 +00:00
Ed Page
a627778809 refactor: Generalize test file name 2022-02-14 14:42:23 -06:00
Ed Page
86864b004b
Merge pull request #3468 from epage/pub2
refactor: Reduce visibility on App members
2022-02-14 14:37:17 -06:00
Ed Page
77542a1138 refactor: Reduce visibility on App members
The long term goals are
- Easier refactoring
- Identify needs for reflection API

Shorter term, if I want to rename `App` to `Command` and deprecate
`App`, it will mark all member access as deprecated.  This works around
that.

I gave up in exploring abstractions when it came to `MKeyMap` access.
This can be refined in the future.
2022-02-14 14:17:48 -06:00
Ed Page
e759001d93
Merge pull request #3466 from epage/usage
refactor: Centralize build logic
2022-02-14 13:22:52 -06:00
Ed Page
58000253d7 refactor: Clarify role of usage name 2022-02-14 12:52:37 -06:00
Ed Page
235cbb615e refactor: Centralize build logic 2022-02-14 12:52:37 -06:00
Ed Page
3f32030f7f refactor: Delay collecting required
The main goal is to allow centralizing some building logic currently
split between the parser and `App`.  It depends on this logic.

As a side benefit, this allowed us to decouple some operations from `Parser` in `App`.

The main impact I can see is that we'll calculate the required once for
parsing a subcommand and once for validation.
2022-02-14 12:52:37 -06:00
Ed Page
b994789ee6 refactor: Prepare for deferring graph creation 2022-02-14 12:52:37 -06:00
Ed Page
54c2f0df05 refactor: Open door for multiple writes 2022-02-14 12:52:37 -06:00
Ed Page
6886109fa6 refactor: Make use refactor friendly 2022-02-14 12:52:37 -06:00
Ed Page
bf771a266c
Merge pull request #3465 from epage/pacman
docs(examples): Show pacman-style help
2022-02-14 12:40:07 -06:00
Ed Page
adb2b03890 docs(examples): Show pacman-style help
Looking at how `App::usage` member is used, and didn't realize we had
this special logic.
2022-02-14 12:22:01 -06:00
Ed Page
9b3eaf5ade
Merge pull request #3461 from clap-rs/unstable-doc
Remove unnecessary unstable-doc usage
2022-02-14 07:43:54 -06:00
Pavan Kumar Sunkara
24b86d18d0 test: Remove unnecessary feature usage in tests 2022-02-13 19:00:29 +00:00
Ed Page
a5a56d5865
Merge pull request #3458 from epage/old
docs: Hide items deprecated in 3.0.0
2022-02-11 21:24:27 -06:00
Ed Page
6c7126b156 docs: Hide items deprecated in 3.0.0
We left them in the docs for a period of time to help people find docs
for code that was still in use.  Balancing that with the need for clean
docs, it seems like 3.1 is an appropriate time to mark them hidden in
the docs.
2022-02-11 18:42:28 -06:00
Ed Page
9f7d2dc041
Merge pull request #3457 from epage/docs
docs: Update stale references to AppSettings
2022-02-11 16:11:18 -06:00
Ed Page
1e4ec5f4f0 fix: Deprecation warnings 2022-02-11 15:59:03 -06:00
Ed Page
97e36451cf docs: Update stale references to AppSettings 2022-02-11 15:58:12 -06:00
Ed Page
a7bd21ea76
Merge pull request #3456 from epage/alt
fix: ArgRequiredElseHep is viable alt to SubcommandRequiredElseHelp
2022-02-11 15:45:32 -06:00
Ed Page
4895a32e81 fix: Deprecate SubcommandRequiredElseHelp
Now that we can use `SubcommandRequired |
ArgRequiredElseHelp`, this setting offers little value but requires we
track required subcommands with two different settings.  Deprecating as
the cost is not worth the benefit anymore.

Issue #3280 will see the derive updated
2022-02-11 15:31:25 -06:00
Ed Page
8f201d8dd6 docs: Stop demonstrating SubcommandRequiredElseHelp 2022-02-11 15:01:02 -06:00
Ed Page
e8e469178c fix(validate): Give precedence to ArgRequiredElseHelp 2022-02-11 14:59:52 -06:00
Ed Page
c0fd6753ea refactor(validate): Clarify subcmd check intent 2022-02-11 14:55:57 -06:00
Ed Page
8e5ce6c044 refactor(validate): Drop us to one req check 2022-02-11 14:36:42 -06:00
Ed Page
f9bb3de750
Merge pull request #3453 from epage/name
fix: Clarify Arg/ArgGroup id's role
2022-02-11 14:28:40 -06:00
Ed Page
9824f8d0ba perf(validate): Remove unnecesarry walking of args 2022-02-11 14:27:18 -06:00
Ed Page
d3f5d7ce34 fix: Clarify Arg/ArgGroup id's role
This adjusts names.  Adjusting the derive naming (and re-naming) is left
to #2475.

Fixes #3335
2022-02-11 14:11:50 -06:00
Ed Page
cb06496a0d
Merge pull request #3452 from epage/lit
refactor(derive): Remove redundant code paths
2022-02-11 13:33:01 -06:00
Ed Page
85908ce039 refactor(derive): Remove redundant code paths
I'm assuming this is from when structopt always set author, version, and
about and you had to apply other attributes to remove them.
2022-02-11 13:19:14 -06:00
Ed Page
416ac7155a
Merge pull request #3451 from epage/help
fix(help): Subcommand `help` looks like `--help`
2022-02-11 13:10:52 -06:00
Ed Page
f7b5cdc108
Merge pull request #3449 from epage/app
fix: Deprecate most AppSettings
2022-02-11 12:51:04 -06:00
Ed Page
06d43a02da fix(help): Subcommand help looks like --help
Like was said in #2435, this is what people would expect.

While we should note this in a compatibility section in the changelog, I
do not consider this a breaking change since we should be free to adjust
the help output as needed.  We are cautious when people might build up
their own content around it (like #3312) but apps should already handle
this with `--help` so this shouldn't be a major change.

We aren't offering a way for people to disable this, assuming people
won't need to.  Longer term, we are looking at support "Actions" (#3405)
and expect those to help customize the flags.  We'll need something
similar for the `help` subcommand.

Fixes #3440
2022-02-11 12:47:34 -06:00
Ed Page
272f840178 feat: Replace core set of AppSettings with functions
This is a part of #2717

Some settings didn't get getters because
- They are transient parse settings (e.g. ignore errors)
- They get propagated to args and should be checked there

`is_allow_hyphen_values_set` is a curious case.  In some cases, we only
check the app and not an arg.  This seems suspicious.
2022-02-11 12:35:09 -06:00
Ed Page
de7c81e059 fix(error): Deprecate WaitOnError
Fixes #3439
2022-02-11 09:00:10 -06:00
Ed Page
547665d52a fix(color): Allow overriding previous settings 2022-02-11 09:00:10 -06:00
Ed Page
bdb034b1b5 docs: Clarify app-wide vs command-specific settings 2022-02-11 09:00:10 -06:00
Ed Page
b076f81207
Merge pull request #3448 from epage/examples
docs(examples): Add missing feature flag reqs
2022-02-11 07:41:06 -06:00
Ed Page
f00f97c8c4 docs(examples): Add missing feature flag reqs 2022-02-11 07:07:03 -06:00
Ed Page
5f71ca0a3c
Merge pull request #3444 from epage/deprecated
fix: Deprecate various APIs
2022-02-10 19:52:42 -06:00
Ed Page
9bd7060089 fix: Deprecate various APIs
- ArgSettings are part of #2717
- Errors are part of #2628
- `help_heading` is part of #1807 and #1553
- Some misc parts are for API consistency
2022-02-10 19:37:47 -06:00