Ed Page
79225d3a2d
fix(derive): Allow defaulted value parser for '()' fields
...
Inspired by #4458
This is a compatible change because it turns a compiler error into a
working case.
2022-11-07 06:07:51 -06:00
Ed Page
7e2a1b5d94
chore: Release
2022-10-20 16:58:59 -05:00
Ed Page
91daec67ca
fix(derive): Allow skipping enum variants with a value
...
Fixes #4411
2022-10-20 16:44:51 -05:00
Ed Page
e5a7a65153
chore: Release
2022-10-11 10:43:39 -05:00
Ed Page
b26c01aa0e
feat(derive): Allow type-less fields
...
When overriding other fields, help or version flag, globals, etc, a user
might not care about the value, so let's ignore the lookup.
Been talking about this for a while but Issue #4367 moved this forward
because there wasn't a good way to handle this without changing
behavior.
2022-10-11 10:31:42 -05:00
Ed Page
af1234a0c2
chore: Release
2022-10-05 16:51:33 -05:00
Ed Page
78676f5043
fix(derive): Make mismatched behavior more obvious
...
If the inner type never implemented `group_id()`, then it won't work and
people will be confused. This at least gives people an idea of whats
going wrong.
This is most likely to be a problem until #3165 is fully implemented but
hand-implementations can still run into this. Probably should have made
the groups another trait to catch this in type system but too late.
2022-10-05 16:25:14 -05:00
Ed Page
06d2049931
feat(derive): Support 'Option' when flattening
2022-10-05 16:21:00 -05:00
Ed Page
33db640dd5
refactor(derive): Make flatten's update prepped for Option
2022-10-05 16:12:12 -05:00
Ed Page
f121a8bdf6
fix(derive): Better subcommand type errors for Vec
2022-10-05 16:03:48 -05:00
Ed Page
4f17f998cb
fix(derive): Better flatten type errors
2022-10-05 15:59:45 -05:00
Ed Page
1d533bb31f
chore: Release
2022-10-03 16:20:14 -05:00
Ed Page
7ceb08ac70
fix(derive): Apply doc comments for #[command(subcommand)]
...
This was broken in 8a5a9ba931
. I had
missed this case for parsing doc comments.
2022-10-03 16:04:38 -05:00
Ed Page
261fb792a4
chore: Release
2022-10-01 13:54:19 -05:00
Ed Page
05bf0504f0
chore: Remove outdated replacement
2022-10-01 13:54:08 -05:00
Ed Page
03085e9dd1
docs(derive) Fix README links
...
Fixes #4314
2022-09-30 19:56:05 -05:00
Ed Page
0bea4f252b
chore: Release
2022-09-30 14:08:59 -05:00
Ed Page
5f145a23e9
fix(derive): Support 'group' attribute with Parser
2022-09-30 13:44:10 -05:00
Ed Page
42122787d7
feat(derive): Report the group id
...
This will be needed when we support flattening for #3165
2022-09-30 12:24:21 -05:00
Ed Page
50ad905b6a
feat(derive): Implicitly populate groups from some structs
...
This implements the basics for #3165 , just missing
- `flatten` support (waiting on improved group support)
- `group` attributes
2022-09-30 11:42:06 -05:00
Ed Page
470140f41e
chore: Release
2022-09-30 09:31:51 -05:00
Ed Page
2498147138
feat(derive): Allow skipping the implicit ArgGroup
...
This was prioritized to allow users to workaround problems when the
implicit `ArgGroup` is getting in the way.
Fixes #4279
2022-09-30 09:15:38 -05:00
Ed Page
6ca0569baa
fix(derive): Pipe group attribute through
...
Still doesn't support any attributes within it yet.
2022-09-30 08:56:35 -05:00
Ed Page
f6602c573c
chore: Release
2022-09-28 14:51:22 -05:00
Ed Page
24be631f86
fix(derive): Ensure clap/structopt attributes still work
...
The problem with updating all code to use non-deprecated APIs, there
aren't tests for the old way anymore.
Fixes #4274
2022-09-28 14:29:39 -05:00
Ed Page
79ba02daa5
fix(derive): Quote the attribute in the error
2022-09-28 14:27:08 -05:00
Ed Page
3a74d82376
chore: Release
2022-09-28 12:00:48 -05:00
Ed Page
a82029c707
chore: Release
2022-09-20 16:30:29 -05:00
Ed Page
fe43f0c945
Revert "fix: Remove once_cell dependency from derive"
...
This reverts commit 429143af42
.
2022-09-16 16:19:03 -05:00
Ed Page
7ccaebb65d
refactor(parser): Switch from Box<str>
to String
...
This is a more familiar type for people and it didn't cost us anything
(in fact it undid the code size change in the last commit).
2022-09-16 16:14:32 -05:00
Ed Page
1e13109a26
refactor(parser): Track subcommands with Box<str>
...
The overall hope is to allow a `&'static str`-only version of clap, so
we need to move off of `Str` where dynamic strings are required. We
need it here for subcommands due to external subcommands.
This had minimal impact on code size (567.2 to 567.5 KiB)
2022-09-16 16:14:32 -05:00
Ed Page
14c6ce0e83
fix(derive): Remove next_help_heading isolation
...
Originally, I saw the ideal as the parent command being isolated from
`#[clap(flatte)]` especially after all of the doc comment
leakage issues. We scaled that back to just `next_help_heading` because
of the issues with settling on a policy and maintenance to cover
everything. When doing `next_display_order`, we decided it would mess
things up too much to isolate it.
With #1807 , we instead have been moving towards setting
`#[command(next_help_heading)]` anywhere, we just need to finish working
out how it should work.
2022-09-16 15:31:49 -05:00
Ed Page
417f1a9813
fix(derive): Read CARGO_PKG_NAME at runtime
...
This was broken in #4168
2022-09-16 14:31:58 -05:00
Ed Page
d3bf5450ff
feat(derive): Reserve the T group name
...
Since the `name` is changed to be the package name, we can't use it as
(1) its not as predictable and (2) it can lead to conflicts if a
`Parser` is flattened into a `Parser`
2022-09-13 07:44:36 -05:00
Ed Page
3bfa9d5ff0
feat(derive): Reserve 'group' attribute
2022-09-13 07:06:06 -05:00
Ed Page
17f49df4e2
revert(derive): Bald action/value_parser are deprecated, its good enough
...
When I removed these in v5, we didn't have a deprecation approach for
the derive and I didn't want to forget. Now we do have a deprecation
approach and that is the reminder, so we don't need to carry around v5
changes.
2022-09-07 19:34:50 -05:00
Ed Page
ede8fd6dbd
style(derive): Clean up to make explicit methods easier
2022-09-06 12:54:50 -05:00
Ed Page
9c85839705
refactor(derive): Simplify processing of Subcommand
2022-09-06 12:54:50 -05:00
Ed Page
51dc3c63d6
refactor(derive): Treat subcommands like other Kinds
2022-09-06 12:54:50 -05:00
Ed Page
222003abe1
fix(derive): Disallow general attributes with from_global
2022-09-06 12:54:50 -05:00
Ed Page
a71b2eb8b8
refactor(derive): Shift responsibility for long help
2022-09-06 12:54:47 -05:00
Ed Page
abcee38466
fix(derive): Improve skip
method error
...
Really this is about consolidating the skip checks but it also provideda
chance to improve the error.
2022-09-06 10:48:54 -05:00
Ed Page
8a5a9ba931
perf(derive): Only parse doc comments when needed for field/variant
2022-09-06 10:43:16 -05:00
Ed Page
9eb72ea5b6
fix(derive): Disallow attributes on top-level ValuEnum
2022-09-06 10:40:12 -05:00
Ed Page
1d973bd1c1
perf(derive): Don't parse ValueEnum's doc comment to ignore it
2022-09-06 10:36:22 -05:00
Ed Page
eece51fe04
refactor(derive): Give more control to the derive
2022-09-06 10:35:19 -05:00
Ed Page
71b9209a34
refactor(derive): Simplify Kind initialization
2022-09-06 07:56:08 -05:00
Ed Page
ade931be57
fix(derive): Be less prescriptive
...
With how flexible clap's API is, it can be hard to determine what is
reasonable to use with its API, so let's just stop.
2022-09-06 07:56:08 -05:00
Ed Page
b29f3ff22f
refactor(derive): Delay error handling
2022-09-06 07:56:08 -05:00
Ed Page
f9e1ba2c1e
fix(derive): Improve the default span
2022-09-06 07:56:07 -05:00