Commit graph

5076 commits

Author SHA1 Message Date
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
9824f8d0ba perf(validate): Remove unnecesarry walking of args 2022-02-11 14:27:18 -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
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
Ed Page
81092b5aed fix: Detect deeply recursed global args
Fixes #3428
2022-02-09 16:05:27 -06:00
Ed Page
82dfc7d5ea perf: Reduce parse allocations 2022-02-09 15:24:52 -06:00
Ed Page
117c9edb6e
Merge pull request #3427 from epage/example
docs(tutorial): Demonstrate custom parsing
2022-02-09 10:05:20 -06:00
josh rotenberg
ee3eab1614 docs(tutorial): Demonstrate custom parsing
Adds a more in depth validator to validate that the port is in range in the derive and builder tutorial (section 4.2).

This supersedes #3416
2022-02-09 09:16:57 -06:00
Ed Page
1b5f9e6450
Merge pull request #3425 from epage/help
fix(assert): Provide next steps for '-h' conflicts
2022-02-08 19:16:03 -06:00
Ed Page
6c60b79d21 fix(assert): Provide next steps for '-h' conflicts
For now, we are going to provide a better debug assert in this case.
Resolving #3405 is the better long term route.

Fixes #3403
2022-02-08 18:56:14 -06:00
Ed Page
df1d50c367 fix: Easier to debug help flags 2022-02-08 18:51:51 -06:00
Ed Page
0aabcd70c1 test: Ensure we can avoid a short on help 2022-02-08 18:51:51 -06:00
Ed Page
341b12874d docs(faq): Raise visibility of migration guide
Part of #3422
2022-02-08 17:31:16 -06:00
Ed Page
62759ffea7
Merge pull request #3424 from epage/source
feat(parser): Expose ValueSource
2022-02-08 15:22:55 -06:00
Ed Page
12c29526fa fix(parser): Give room for more ValueSources 2022-02-08 15:05:59 -06:00
Ed Page
f42fc89288 fix(parser): Remove an internal-only ValueSource 2022-02-08 15:05:59 -06:00
Ed Page
edda56f072 feat(parser): Expose ValueSource
Fixes #1345
2022-02-08 15:05:51 -06:00
Ed Page
31bd34ca1a
Merge pull request #3423 from epage/assert
fix(assert): Report invalid defaults in debug asserts
2022-02-08 15:01:42 -06:00
Ed Page
9f41bb3948 fix(assert): Report invalid defaults in debug asserts
This can help people catch them via `App::debug_assert` rather than
waiting until the default is used and validated.

Fixes #3202
2022-02-08 14:41:33 -06:00
Ed Page
edf9d057c4
Merge pull request #3421 from epage/more
fix(help): ArgsRequiredElseHelp should ignore defaults
2022-02-08 14:23:35 -06:00
Ed Page
15f01789d2
Merge pull request #3420 from epage/default
Requires and Conflicts should ignore default_value
2022-02-08 12:59:20 -06:00
Ed Page
b2d1ebef4b fix(help): ArgsRequiredElseHelp should ignore defaults
Fixes #1264
2022-02-08 12:34:19 -06:00