Will-Low
41c0d514bc
Update doctring for BoolishValueParser::new
2024-04-23 12:14:42 -07:00
Ed Page
93d40450f7
docs: Fix typo
2024-04-09 12:05:12 -05:00
Ed Page
f65d421607
chore: Release
2024-03-06 10:52:18 -06:00
Amaan Qureshi
2aea9504c4
fix: Use SCREAMING_SNAKE_CASE for static variable authors
2024-03-05 23:52:48 -05:00
Ben Wiederhake
0076cac7cb
fix(builder): Don't doc-link to undocumented item
2024-02-23 01:40:29 +01:00
Ed Page
8a7a13a561
chore: Release
2024-02-16 07:08:54 -06:00
Ed Page
446328a8d3
fix(error): Include -- in more cases
...
Inspired by rust-lang/cargo#12494 .
Part of this is that our "did you mean" does prefix checks so it can be
overly aggressive in providing suggestions.
To avoid providing needless suggestions I limited this change to `last`
/ `trailing_var_arg` as those convey that `--` is more likely a valid
suggestion.
2024-02-16 06:54:57 -06:00
Ed Page
323345b3bc
fix: Add missing clap::builder::OsStr impl
...
Found via rust-lang/cargo#10554
2024-02-10 19:59:40 -06:00
Ed Page
a751c5fe65
chore: Release
2024-02-08 10:34:06 -06:00
Ed Page
9ec6c942b8
chore: Release
2024-02-08 10:33:13 -06:00
renovate[bot]
cd0ca3cc13
chore(deps): update rust crate strsim to 0.11.0
2024-02-01 01:06:03 +00:00
Ed Page
0134f45ff0
chore: Release
2024-01-16 14:28:07 -06:00
Ed Page
2f1890907e
Merge pull request #5314 from epage/required
...
fix(parser): Don't duplicate requireds when usage disabled
2024-01-16 14:26:40 -06:00
Ed Page
0a635b9a20
fix(parser): Don't duplicate requireds when usage disabled
...
Skipping a test for now because we don't have a mixed-feature testing
strategy.
Fixes #5312
2024-01-16 14:15:48 -06:00
Martin Pool
8c83971b8c
docs: Link to exit code info
2024-01-15 14:30:11 -08:00
Ed Page
ef98da27cb
chore: Release
2024-01-15 10:20:03 -06:00
Ed Page
50c59f63bb
fix(parser): Don't panic with conflicts and groups
...
With #5298 , I had overlooked that `matcher.arg_ids()` includes
`ArgGroup`s. I had assumed I could always find a present `id` among
`Arg`s and `unwrap`ed.
I skipped a test for this because the use case is a bit strange that the
long term value for the test would likely be low.
If/when we add derive support for `args_conflicts_with_subcommands`, it
will then cover this case.
Fixes #5304
2024-01-15 09:30:19 -06:00
Ed Page
cbc9c9dd44
chore: Release
2024-01-11 20:52:38 -06:00
Ed Page
2a3356a535
fix: Update anstream
2024-01-11 20:33:39 -06:00
Ed Page
12b5c39d46
chore: Release
2024-01-11 10:37:53 -06:00
Ed Page
f529ec398c
fix(parser): Ensure subcommand flags can conflict
...
Fixes #5297
2024-01-11 10:25:57 -06:00
Ed Page
a7e04a53e4
fix(parser): Improve subcommand conflict error
2024-01-11 10:20:19 -06:00
Ed Page
ea00ef3051
refactor(error): Allow more conflict sources
2024-01-11 10:17:35 -06:00
Ed Page
e47d8a2a66
refactor(parser): Clarify arg error
2024-01-11 09:47:00 -06:00
Ed Page
514f28bc92
chore: Release
2024-01-08 10:39:47 -06:00
Ed Page
3eaf1af052
fix(help): Correctly show help for fake flags
2024-01-08 09:58:42 -06:00
Ed Page
148e102ac3
fix(builder): Allow custom flag definitions
...
The goal is to allow getting the position of repeated flags for #5287
2024-01-08 09:49:43 -06:00
Ed Page
6d601e6f31
chore: Release
2023-12-28 12:07:48 -06:00
Sean Allred
05cd057978
perf: Avoid retrieving possible_values unless used
...
In some sophisticated situations, these may be expensive to calculate.
One example might be a '--branch' option accepting any single Git
branch that exists on the remote -- in such a case, the remote would
need to be queried for all possible_values. The cost is ultimately
unavoidable at runtime since this validation has to happen eventually,
but there's no need to pay it when generating help text if
`is_hide_possible_values_set`.
To keep '-h' fast, avoid collecting `possible_values` during '-h'
unless we're actually going to use the values in display.
This optimization is repeated for the manpage renderer.
This is trivially based on the short-circuiting logic at [1], which at
least supports the idea that actually consuming the iterator is not
generally-guaranteed behavior when `hide_possible_values` is set.
Note on the 'expensive' mod: This keeps all the possible_values tests
in one file but allows the entire set of tests to be controlled by the
'strings' feature (which is required to be able to use String rather
than str for each possible value).
[1]: clap_builder/src/builder/command.rs:long_help_exists_
2023-12-28 10:06:35 -06:00
Ed Page
d092896d61
chore: Release
2023-12-04 12:17:32 -06:00
Ed Page
37917be0b7
feat: Add Command::mut_group
...
Fixes #5038
2023-12-04 12:03:05 -06:00
Ed Page
21b671f689
chore: Release
2023-11-27 11:57:26 -06:00
Ed Page
b13f6d9862
fix(help): Hide 'help' if only flattened subcommand
2023-11-27 10:49:21 -06:00
Ed Page
a9322cabf3
fix(help): Hide subcommands in flattened usage
2023-11-27 10:43:16 -06:00
Ed Page
22130e3057
fix(help): Use right about
when flattening
...
Fixes #5226
2023-11-27 09:28:30 -06:00
Kelly Thomas Kline
7568d5fa67
Update command.rs
...
Correct wording.
2023-11-16 21:06:03 -08:00
Ed Page
3aeea916e8
chore: Release
2023-11-10 16:24:46 -06:00
Ed Page
9c0f7a7253
fix(help): Recurse help flattening
2023-11-09 15:34:05 -06:00
Ed Page
4bef91ca3c
refactor(help): Pull out flat subcommands
2023-11-09 15:34:03 -06:00
Ed Page
c9a7ef06e1
fix(help): Gloss over globals with flatten
...
When using globals, people tend to make all of the top-level arguments
global and cascading them through would just bloat the output.
2023-11-09 15:33:18 -06:00
Ed Page
9e5f93d43f
fix(help): Be consistent in long/short help
2023-11-09 15:33:18 -06:00
Ed Page
66d2bcbdd4
feat(help): Allow flattening help
2023-11-09 15:32:57 -06:00
Ed Page
caf5cdcfa0
feat(help): Allow flattening usage
2023-11-09 13:31:22 -06:00
Ed Page
a1fd922bda
feat(help): Allow controlling flattening
2023-11-09 13:31:11 -06:00
Ed Page
2142b136b8
refactor: Pull out usage name fallback
2023-11-09 13:27:59 -06:00
Ed Page
4b60cefbf1
refactor: Pull out bin name fallback
2023-11-09 13:26:20 -06:00
Ed Page
c1c2e95ab6
refactor(help): Pull out subcommand usage logic
2023-11-09 12:52:08 -06:00
Ed Page
d9685bcc71
refactor(help): Bypass outer usage layer
2023-11-09 12:52:08 -06:00
Ed Page
25e3a87d3c
refactor(help): Consolidate arg line usage generation
2023-11-09 12:14:25 -06:00
Ed Page
83981a7f7b
refactor: Pull out arg usage line
2023-11-09 12:08:24 -06:00
Ed Page
0c668c3915
refactor(help): Pull out bin name logic
2023-11-09 12:03:35 -06:00
Ed Page
7472aba6ce
refactor(help): Clarify usage condition
2023-11-09 12:00:52 -06:00
Ed Page
676e934a61
refactor(help): More directly write args
2023-11-09 11:57:15 -06:00
Ed Page
acdd2c33f0
refactor(help): Make usage argument order consistent
2023-11-09 11:50:46 -06:00
Ed Page
da98eb1a05
refactor(help): Pull out top-level usage logic
2023-11-08 11:49:07 -06:00
Ed Page
f50800f763
refactor(help): Only trim the end on usage
2023-11-08 11:42:54 -06:00
Ed Page
f04f04111b
refactor(help): Switch usage creation to writing
2023-11-08 11:25:43 -06:00
Ed Page
6f7174cc7c
refactor(help): Pull out usage separator
2023-11-08 11:10:55 -06:00
Ed Page
28425e484f
style(docs): Resolve warnings
2023-11-07 13:44:41 -06:00
Ed Page
9bfa5a338c
chore: Release
2023-10-24 13:25:07 -05:00
Ed Page
38b5a2f956
chore: Release
2023-10-24 11:45:21 -05:00
Alex Crichton
9a9aabc178
refactor: Reduce code size of testing tokens if they're a number
...
This commit is a tiny win in compiled code size of a final binary
including `clap` which shaves off 19k of compiled code locally.
Previously tokens were checked if they were a number by using
`.parse::<f64>().is_ok()`, but parsing floats is relatively heavyweight
in terms of code size. This replaces the check with a more naive "does
this string have lots of ascii digits" check where the compiled size of
this check should be much smaller.
2023-10-24 09:17:45 -07:00
Kevin Reid
71c1e59334
docs: Fix doc link to Arg::trailing_var_arg
2023-10-14 18:11:33 -07:00
Ed Page
dfebb54423
style: Make clippy happy
2023-10-12 08:32:59 -05:00
Josh Triplett
416b1a8da7
fix: Remove unused dev-dependencies
...
These dependencies are used elsewhere in clap, but not in these crates.
`cargo test` and `cargo check --examples` both still pass with these
dependencies removed.
2023-10-10 20:11:33 +08:00
Ed Page
29f22c193c
Merge pull request #5160 from epage/docs
...
docs: Provide custom version/help flag examples
2023-10-04 17:01:16 -05:00
Ed Page
da7ebca04e
docs: Provide custom help flag example
2023-10-04 16:25:31 -05:00
Ed Page
e74864f88a
docs: Provide custom version flag example
2023-10-04 16:22:46 -05:00
renovate[bot]
4054a0c1a5
chore(deps): update compatible (dev) ( #5151 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-01 01:52:25 +00:00
Ed Page
39f5e807af
chore: Release
2023-09-28 14:36:28 -05:00
Ed Page
485b957c4b
chore: Upgrade anstream
2023-09-28 14:13:54 -05:00
Ed Page
c298f6a52c
chore: Release
2023-09-25 15:59:01 -05:00
Ed Page
3ac44040ef
Merge pull request #5025 from SUPERCILEX/resolve-alias-conflicts
...
fix: Resolve conflicting name inference if from aliases
2023-09-25 15:56:28 -05:00
Alex Saveau
a76789eb8b
fix: Make long subcommand flag inference consistent
...
Signed-off-by: Alex Saveau <saveau.alexandre@gmail.com>
2023-09-25 13:28:27 -07:00
Alex Saveau
c2b8ec3bd3
fix: Resolve conflicting name inference if from aliases
...
Signed-off-by: Alex Saveau <saveau.alexandre@gmail.com>
2023-09-25 13:18:54 -07:00
Ed Page
221177b9cb
fix(assert): Call out the action in positional assert
...
Brought up in #5135
2023-09-25 10:18:37 -05:00
Ed Page
c344edf8b9
docs: Clarify most asserts are for debug builds
2023-09-19 12:38:21 -05:00
Ed Page
e6e539660f
chore: Release
2023-09-18 09:28:47 -06:00
Colin Walters
84f99ff979
chore(builder): Bump terminal_size to 0.3
...
For some reason, terminal_size bumped semver recently; they
also bumped the rustix version to 0.38.
I'd like to reduce the number of copies of OS integration
crates (rustix and nix) in my dependency chain. Let's bump
to the new version so I can aim to drop rustix 0.37.
2023-09-18 10:31:19 -04:00
renovate[bot]
dc63cba772
chore(deps): update compatible (dev) ( #5108 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-01 01:47:45 +00:00
Ed Page
3cd571e654
chore: Release
2023-08-31 13:19:11 -05:00
Ed Page
7a4f7d3f2c
Merge pull request #5106 from epage/once
...
perf: Drop a dep for faster builds
2023-08-31 13:18:15 -05:00
Ed Page
087224a486
perf: Drop a dep for faster builds
...
`OnceLock` became available as of 1.70 which is older than our new MSRV.
We can easily get away without `Lazy` variants.
2023-08-31 12:54:45 -05:00
Joe Chen
4012b195fd
fix(builder): Update documentation comments
2023-08-31 13:22:35 +08:00
Ed Page
7126f78421
chore: Release
2023-08-28 11:45:19 -05:00
Ed Page
eb53db89f8
feat(help): Stabilize styling support
...
Fixes #3234
2023-08-28 09:49:48 -05:00
Ed Page
2e49645418
chore: Release
2023-08-24 11:08:02 -05:00
Ed Page
0b196a165c
perf(builder): Speed up builds by dropping is-terminal
2023-08-24 10:19:28 -05:00
Ed Page
88cf306216
chore: Release
2023-08-23 09:21:22 -05:00
Ed Page
bf3f25ebb2
fix(help): Ensure padding isn't stripped
...
Fixes #5083
2023-08-22 16:02:33 -05:00
Ed Page
b9df80c2ce
chore: Release
2023-08-18 16:07:31 -05:00
Ed Page
56135f3ff3
fix(builder): UnknownValueParser shouldn't error on flag absense
...
Fixes #5079
2023-08-18 14:29:37 -05:00
Ed Page
6720240577
feat(parser): Report source to value parsers
2023-08-18 14:28:15 -05:00
Ed Page
df337de701
chore: Release
2023-08-17 08:59:45 -05:00
Ed Page
9f65eb0c9a
refactor(error): Give caller control over suggestion
2023-08-16 14:54:45 -05:00
Ed Page
8413c155d2
feat(builder): Allow injecting known unknowns
...
Fixes #4706
2023-08-16 14:50:08 -05:00
Ed Page
ee1388c0a3
chore: Release
2023-08-07 20:36:44 -05:00
Ed Page
3156e1a35c
Merge pull request #5066 from 9999years/export-trymapvalueparser
...
feat: Allow referencing `TypedValueParser` in`ValueParserFactory` associated type
2023-08-07 20:35:49 -05:00
Ed Page
b96cbafcbe
chore: Release
2023-08-07 20:33:13 -05:00
Rebecca Turner
c86172e891
feat: Export builder::TryMapValueParser
...
Partial fix for #5065 , allows using TypedValueParser::try_map to
implement a ValueParserFactory.
2023-08-03 15:53:38 -07:00