Commit graph

267 commits

Author SHA1 Message Date
Ed Page
56fe5e0ec0 fix!: Remove unstable-replace feature flag
This has been implemented for 3 years without much traction for
finishing it up.

The subcommand use case can be worked around by creating `Command`s that
just include the relevant logic, very similar to the default subcommand
examples in `git` / `git-derive`.

Using this for flags is covered by #4793.

Without `unstable-replace` being enabled, this still cut 5 KiB from
`cargo bloat --release --example git`.

Closes #2836
Closes #2011
2023-03-28 00:26:45 -05:00
Ed Page
d5089b2672 fix!: Remove stablized unstable-grouped feature 2023-03-28 00:22:40 -05:00
Ed Page
fa60e723fc fix(error): Give more idea why we are suggesting an arg
One challenge with this is finding something that generally works.
Making this work perfectly for one setting will make it inconsistent
with other settings and take up more binary size / compile time.

So in the end, I felt like just mirroring rustc (with a bit more
brevity) seemed like a decent experiment.  This will be evaluated by the
feedback on release.

This is a small part of #4638
2023-03-27 20:45:27 -05:00
Ed Page
234d5f91d1 fix(error): Change from neutral 'note' to helpful 'tip'
This also has the advantage of aligning with `error:`

This is a small part of #4638
2023-03-27 20:45:11 -05:00
Ed Page
b6432c8ead docs(help): Show how to style text
Fixes #3108
Fixes #1433
2023-03-27 19:47:16 -05:00
Ed Page
5ebcb4c3bf feat(builder): Allow write! on StyledStr 2023-03-27 19:46:23 -05:00
Ed Page
f19e33eb27 perf(help): Reduce binary size 2023-03-27 19:46:22 -05:00
Ed Page
9516fd928f refactor(version): Directly convert rendered to styled 2023-03-27 19:45:41 -05:00
Ed Page
6255229a9c refactor: Remove extra layer of AnsiDisplay 2023-03-27 19:45:41 -05:00
Ed Page
1773884715 refactor(help): Simplify writing 2023-03-27 19:45:41 -05:00
Ed Page
bdbfe6470f refactor(help): Track style via ANSI codes 2023-03-27 19:45:41 -05:00
Ed Page
1040114162 feat(help): Respect CLICOLOR, CLICOLOR_FORCE
We might have respected `NO_COLOR` before via `termcolor`.

See #4722
2023-03-27 19:45:39 -05:00
Ed Page
2852653656 chore: Release 2023-03-27 19:41:39 -05:00
Ed Page
2bb4146374 chore: Release 2023-03-25 03:56:28 -05:00
Ed Page
ea4dada1e4 fix(lex): Allow reporting errors for non-UTF8 longs 2023-03-25 03:42:04 -05:00
Ed Page
6419a0d937 perf!(lex): Build faster by removing os_str_bytes
We are doing direct transmutes between `OsStr` and `[u8]`.
https://github.com/rust-lang/rust/pull/95290 would make this natively
supported but I got tired of waitin for it.

This only saves about 1/4s off of `cargo build`.

This took 2.9 KiB off of `cargo bloat --release --example git`
2023-03-25 01:59:24 -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