Commit graph

5194 commits

Author SHA1 Message Date
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
Ed Page
48686804c7 docs(man): Fix links 2022-02-10 13:54:29 -06:00
Ed Page
c422ed24df
Merge pull request #3438 from epage/flatten
refactor: Flatten directory heirarcy
2022-02-10 11:47:10 -06:00
Ed Page
60a8747603 refactor: Flatten directory heirarchy 2022-02-10 11:17:08 -06:00
Ed Page
fb9e4e7c25 refactor: Centraize all debug asserts 2022-02-10 11:10:34 -06:00
Ed Page
b7842c2e11 refactor: Flatten directory heirarchy 2022-02-10 11:07:57 -06:00
Ed Page
727c453322
Merge pull request #3434 from epage/setting
feat: Add `Arg` getters for all settings
2022-02-10 10:37:59 -06:00
Ed Page
47d76742eb feat: Add Arg getters for all settings
This is prep for #2717
2022-02-10 10:18:41 -06:00
Ed Page
3b4c44eccc
Merge pull request #3430 from AlyoshaVasilieva/validator-doc
Doc that `validator` takes &str, not String
2022-02-10 06:06:10 -06:00
Ed Page
a422455258
Merge pull request #3431 from AlyoshaVasilieva/concom
docs: fix Conventional Commits link
2022-02-10 06:05:48 -06:00
Malloc Voidstar
6a384a09a2
docs: Fix Conventional Commits link 2022-02-09 21:35:17 -08:00
Malloc Voidstar
bd49665bd5
docs: validator takes &str, not String
Explicit link removed as it doesn't appear to be necessary
2022-02-09 21:03:19 -08:00
Ed Page
519fcc2e11
Merge pull request #3429 from epage/global
fix: Detect deeply recursed global args
2022-02-09 16:23:51 -06:00