Commit graph

536 commits

Author SHA1 Message Date
Ed Page
fcda411e5e chore: Release 2023-07-14 12:01:56 -05:00
Ed Page
3025ff859f fix(derive): Don't fail on variant field attributes
Well, thats annoying how easy it is to get this wrong but tests can only
help with regressions; it would be hard to prevent future failures.

Fixes #5007
2023-07-14 11:16:45 -05:00
Ed Page
ffbe6e9936 docs(derive): Ensure magic attributes are searchable 2023-06-23 13:20:21 -05:00
Ed Page
475e254d25 chore: Release 2023-06-05 13:56:50 -05:00
Ed Page
103ae5cf62 fix(derive): Don't warn when people bring types into scope
Fixes #4951
2023-06-05 12:55:06 -05:00
Ed Page
e7729d1282 fix(derive): Mark all impls as automatically derived
Unsure what all it does.  I removed our `allow`s and we still get lints,
so unsure if its only some that it applies to it.

Inspired by #4951
2023-06-05 12:31:55 -05:00
Ed Page
50f0e6bffb chore: Release 2023-06-01 21:10:46 -05:00
klensy
df5d90101a perf(derive): Reduce amount of generated code 2023-06-02 13:59:38 +03:00
Ed Page
9c3dc187cb chore: Release 2023-05-19 11:55:42 -05:00
Yuri Astrakhan
d0302c5556 chore: Inline simple non-mixed format args 2023-05-04 15:58:04 -04:00
Ed Page
173f1ede0a
Merge pull request #4881 from nyurik/dedup-derive
chore: Dedup clap derive get fields
2023-05-04 08:27:29 -05:00
Yuri Astrakhan
003b45325a chore: Dedup clap derive get fields 2023-05-03 23:09:30 -04:00
Yuri Astrakhan
797c23c415 chore: Inline format args using clippy fix
This command cleaned up all the format args,
making code significantly shorter and more readable.

```
cargo clippy --workspace --fix -- -A clippy::all -W clippy::uninlined_format_args
```
2023-05-03 21:49:11 -04:00
Ed Page
8fc65e28b6 chore: Release 2023-03-28 02:19:08 -05:00
Ed Page
2852653656 chore: Release 2023-03-27 19:41:39 -05:00
Kurtis Nusbaum
5430df7a0f feat(derive): Support #[group] attributes
This adds the ability derive additional options for the group creation.

Fixes #4574
2023-03-25 03:25:38 -05:00
Ed Page
4e1a565b8a refactor: Split out clap_builder for faster derive builds
For now, we are still treating `clap` as the user facing API for both
builder and derive, making this an internal change as we don't expect
this to negatively impact builder build times all that much.  We can
re-evaluate at a later time and consider having distinct top-level
crates for builder and derive.

Looking at `--timings` on my machine
- `clap` only took 0.04s to build and it happened in
  parallel to `clap_builder` codegen
- this saved 1.7s for derive build times, with `clap_builder` building
  in parallel to `syn` and `clap_builder` and `clap_derive` finishing
  around the same time.

This was discussed some at https://rust-lang.zulipchat.com/#narrow/stream/220302-wg-cli/topic/clap.20build.20times.20and.20.60clap_derive.60.3A.20a.20crazy.20idea
2023-03-24 21:50:02 -05:00
Ed Page
7e7a45ac19 perf(derive): Reduce the amount of generated code
Its a small win, dropping the number of copies and reducing the
overhead from `quote` but enough of these could make a difference
2023-03-18 14:51:13 -05:00
Ed Page
79b44d0460 chore: Release 2023-03-18 09:17:44 -05:00
Ed Page
062622fe2d chore(derive): Update syn 2023-03-18 08:50:41 -05:00
Ed Page
e030426819 refactor(derive): Remove proc-macro-error dependency
Made things simpler that we were always aborting before.
2023-03-18 07:08:22 -05:00
Ed Page
e78bba0ec5 chore: Release 2023-03-16 10:42:06 -05:00
Ed Page
6c0600a031 chore: Fully specify dependencies 2023-03-16 06:07:08 -05:00
Ed Page
f931de694a chore: Release 2023-02-27 12:13:11 -06:00
Mingwei Samuel
fa76f6f78d fix: Remove strict linting from generated code
fix https://github.com/clap-rs/clap/issues/4733
2023-02-27 21:29:47 -08:00
Ed Page
5f247f5181 chore: Release 2023-02-27 07:55:14 -06:00
Roman Krasiuk
5bab68a16f fix: Allow clippy::almost_swapped 2023-02-27 19:42:44 +02:00
Roman Krasiuk
872135b64f fix: Allow clippy::almost_swapped 2023-02-27 19:35:01 +02:00
Ed Page
889ca7a537 chore: Bump versions for 4.1 2023-01-13 09:24:37 -06:00
Thayne McCombs
65f9e0d747 refactor(derive): Clean up unnecessary noop parsing
My guess is this was left over from switching to using the type based
API. The generated code for extracting values from `ArgMatches` had some
code that didn't actually do anything, like mapping over the identity
function, and wrapping a value in an `Ok` only to immediately use "?" on
it.
2023-01-11 01:38:36 -07:00
Ed Page
e576c65dee style: Make clippy happy 2023-01-10 09:08:12 -06:00
Ed Page
084991f70a
Merge pull request #4600 from tmccombs/groups-derive
Add support for deriving grouped options for Vec<Vec<T>>
2023-01-10 08:43:36 -06:00
Ed Page
50f033e6bc fix(derive): Allow users to override arg_required_else_help on sub-sub commands 2023-01-09 21:08:56 -06:00
Ed Page
af71ada3f4 fix(derive): Allow update_from when explicit requireds used
Fixes #4617
2023-01-09 20:52:46 -06:00
Ed Page
fa02111092 chore: Switch to workspace inheritance 2023-01-09 12:35:54 -06:00
Ed Page
f25fe5b3e0 chore: Bump MSRV to 1.64.0 2023-01-09 12:29:41 -06:00
Thayne McCombs
73df3d1a1e chore: Put Vec<Vec<_>> behave for derive behind unstable-v5 flag 2023-01-08 00:28:01 -07:00
Thayne McCombs
eaa9273f91 feat: Add support for deriving grouped options for Vec<Vec<T>>
Relates-To: #2924
2023-01-07 23:36:45 -07:00
Tom Forbes
1b32087418
Fix typo in clap-derive error message
I assume "litersl" should be "literals"?
2023-01-02 01:39:14 +00:00
Ed Page
bc457b179f chore: Release 2022-11-07 10:00:35 -06:00
Ed Page
c37ab6c205 fix(derive): Allow 'long_help' to force populating from doc comment
Fixes #4441
2022-11-07 09:41:52 -06:00
Ed Page
c1a9da9124 refactor(derive): Decouple extracting and formatting of doc comments 2022-11-07 09:17:04 -06:00
Ed Page
214f6b8966 refactor(derive): Clarify bool arg 2022-11-07 08:31:37 -06:00
Ed Page
73be1fef99 refactor(derive): Remove dead code 2022-11-07 08:08:06 -06:00
Ed Page
5ee9e0fe76 refactor(derive): Decouple doc comment parsing from methods 2022-11-07 08:06:10 -06:00
Ed Page
6ace0410c1 refactor(derive): Clarify leading-space removal 2022-11-07 07:49:44 -06:00
Ed Page
d1db3d2f0e refactor(derive): Clarify empty doc needs 2022-11-07 07:48:16 -06:00
Ed Page
b4b94af0f8 chore: Release 2022-11-07 06:24:02 -06:00
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