Commit graph

5030 commits

Author SHA1 Message Date
Jan Verbeek
a18658af86 perf: Replace BTreeMaps by manually sorted Vecs
This removes another ~20KB of code size.

There is one BTreeMap left, but replacing that one doesn't make a difference.
2022-01-29 22:18:32 +01:00
Jan Verbeek
7bf2479125 perf: Do not inline formatting methods
This shaves off ~20KB from the argparse-benchmarks-rs app.
2022-01-29 22:18:30 +01:00
Ed Page
f443eacdab
Merge pull request #3366 from epage/man
fix(man)!: Clean up Meta API
2022-01-28 17:53:36 -06:00
Ed Page
b16cfeecdc fix(man): Expose title generation 2022-01-28 16:22:53 -06:00
Ed Page
2fdb9a3d54 fix(man)!: Clean up Meta API
`Meta` wasn't really serving a distinct purpose in the API, so rolled it
into `Man` now that it lazily renders.
2022-01-28 16:21:14 -06:00
Ed Page
1e2bafe78c
Merge pull request #3364 from epage/man
feat(man)!: Allow customizing man page
2022-01-28 16:13:02 -06:00
Ed Page
5d0ef1f420 feat(man): Allow customizing man page
This is part of #3354
2022-01-28 15:59:09 -06:00
Ed Page
6453df1dc1 refactor(man)!: Open door for customizing rendering
BREAKING CHANGE: Functions now take ownership
2022-01-28 15:42:46 -06:00
Ed Page
924262b329
Merge pull request #3356 from epage/man
docs: Add man changelog
2022-01-28 15:34:05 -06:00
Ed Page
f3f63a4f19 docs: Add man changelog 2022-01-28 15:15:14 -06:00
Sondre Nilsen
0b045f5d0d
feat(man): Initial man generator (#3174)
This is an initial implementation with plenty of room to grow, including
- Allowing pulling out a subset of the generated man page for greater customization
- Subcommand handling
- Extra sections
- Consolidate argument formatter after #2914

Fixes #552
2022-01-28 14:55:55 -06:00
Ed Page
d2109b3969 chore: Release 2022-01-26 15:54:12 -06:00
Ed Page
7f1860e7e2 chore: Update release process 2022-01-26 15:54:06 -06:00
Ed Page
f5ae5714bc docs: Update changelog 2022-01-26 15:53:25 -06:00
Ed Page
993d55fcf3
Merge pull request #3347 from jpgrayson/master
fix(help): Optional arg values in brackets
2022-01-26 15:52:13 -06:00
Peter Grayson
7eea7d27ad
fix(help): Optional arg values in brackets
When an Arg uses .min_values(0), that arg's value(s) are effectively
optional. This is conventionaly denoted in help messages by wrapping the
arg's values in square brackets. For example:

    --foo[=value]
    --bar [value]

This kind of argument can be seen in the wild in many git commands; e.g.
git-status(1).

Signed-off-by: Peter Grayson <pete@jpgrayson.net>
2022-01-26 12:03:23 -05:00
mikehoyle
50b3d2966e
Correct README syntax for bool flag (#3346)
The proper syntax for the attribute is "parse" not "parser".
2022-01-26 08:41:09 -06:00
Samuel El-Borai
5ccffb073b
docs: Fix builder link from docs.rs #3345
3468325b8d and afd0342a added extra context to the README's example.  However, when browsing it at docs.rs, the builder link just links back to the page you are own, offering little value.

Instead we'll now link to the tutorial which works as a next step from the example and resolves the "what do we link for the builder api" question.
2022-01-25 13:30:13 -06:00
Ed Page
b88faadcb9
Merge pull request #3343 from epage/sub
docs(tutorial): Talk about required/optional subcommands
2022-01-25 09:56:53 -06:00
Ed Page
f32d640d49 docs(tutorial): Talk about required/optional subcommands
Inspired by https://github.com/clap-rs/clap/discussions/3342

Looks like we already cover this in the derive reference.
2022-01-25 09:39:14 -06:00
Ed Page
ea7699c11f chore: Release 2022-01-24 15:34:27 -06:00
Ed Page
d09188a7ce docs: Update changelog 2022-01-24 15:33:12 -06:00
omjadas
86c83d296f
feat: Add default_value_os_t (#3333)
The order of suffixes allows us to preserve the original builder function name.

This is a part of #2813
2022-01-24 15:32:21 -06:00
Ed Page
e5b06c3061 chore: Release 2022-01-24 10:54:50 -06:00
Ed Page
ac43b7baee docs: Update changelog 2022-01-24 10:54:04 -06:00
Ed Page
af5502461c
Merge pull request #3334 from epage/source
fix(parser): Track the most explicit value source
2022-01-24 10:51:25 -06:00
Ed Page
c6664afe9d fix(parser): Track the most explicit value source
We were only tracking the last value source (default, env, cli, etc).
This works for args because they only come from one source.  Groups
however can come from multiple sources and this was making us treat a
group with a default value as being completely from defaults despite
some values maybe being from the commandline.

We now track the highest precedence value for a group.

Fixes #3330
2022-01-24 10:34:41 -06:00
Ed Page
afd0342a9b docs(readme): discuss API trade offs
Fixes #3329
2022-01-24 08:29:02 -06:00
Ed Page
43673a1bd1 docs(error): Update reported failure code
Fixes #3332
2022-01-24 08:11:18 -06:00
Ed Page
a7f33efd80 docs(faq): Note clap-serde 2022-01-21 09:49:01 -06:00
Ed Page
0dd169be52
Merge pull request #3328 from epage/panic
Clarify some panics
2022-01-21 08:51:16 -06:00
Ed Page
afb2a3dd05 docs(complete): Clarify some panic conditions 2022-01-21 08:29:38 -06:00
Ed Page
b488aab46c fix: Clarify some unwraps as expects
This was inspiredby #3322
2022-01-21 08:27:18 -06:00
Ed Page
ddad3a7923 docs(derive): Clarify from_flag's interactions 2022-01-20 09:55:13 -06:00
Ed Page
1d6d293ccd
Merge pull request #3314 from epage/docs
docs: More cross-linking to make derive docs discoverable
2022-01-18 19:53:07 -06:00
Ed Page
4c2d65e290 docs(derive): Have crate link out to specific docs 2022-01-18 19:41:29 -06:00
Ed Page
3468325b8d docs: Describe the example we show
This also provides us another opportunity to link to the docs.
2022-01-18 19:38:53 -06:00
Ed Page
5877f884f1 chore: Release 2022-01-18 14:59:58 -06:00
Ed Page
8cfa3567ef docs: Update changelog 2022-01-18 14:59:48 -06:00
Ed Page
c6b5f640a4
Merge pull request #3311 from epage/fix
fix: Don't panic when propagating
2022-01-18 14:58:34 -06:00
Ed Page
38e6952d46 fix: Don't panic when propagating
I thought I was adding a test in #3305.  Maybe I considered the
clap_complete changes sufficient for this.  Doing more `debug_assert`s
would be good also.

Unsetting `PropagateVersion` helps in some cases but we need to unset it
globally to override the global propagation.

Fixes #3310
2022-01-18 14:38:58 -06:00
Ed Page
4b60440d91 docs: Note case in #3309 2022-01-18 10:30:51 -06:00
Ed Page
bd1bf66279 chore: Release 2022-01-17 20:34:09 -06:00
Ed Page
4e51f9b0ef docs: Update changelog 2022-01-17 20:33:52 -06:00
Ed Page
784d249a4e
Merge pull request #3306 from sunshowers/sub
implement App::find_subcommand_mut
2022-01-17 20:30:07 -06:00
Rain
236ec973d9 feat: Implement App::find_subcommand_mut
Similar to `App::find_subcommand`, except it returns a mutable reference
to the subcommand.
2022-01-17 12:31:41 -08:00
Ed Page
ccbbba8908 chore: Release 2022-01-17 09:37:45 -06:00
Ed Page
6817a9cab2 docs: Update changelog 2022-01-17 09:37:22 -06:00
Ed Page
ffe6bff8ac
Merge pull request #3305 from epage/help
fix(help): Always respect DisableColoredHelp
2022-01-17 09:35:18 -06:00
Ed Page
4a43b51a42 fix(complete): Handle help completions
The main motivation was to reduce special cases by putting all of the
logic in one place.
2022-01-17 09:23:04 -06:00