Commit graph

204 commits

Author SHA1 Message Date
Ed Page
e3c191e07e fix(cli): Display shortened paths to users
Before, we always displayed absolute paths and now we'll display
relative ones.

The main issue was loading the config correctly.  We just have to
cannonicalize whenever doing so.
2021-05-14 20:39:08 -05:00
Ed Page
1a1ff20f40 fix(cli): Discover config in parent dirs
My only guess is that in a76ddd42, I lost track of different parts of my
change and never re-implemented this logic.
2021-05-14 14:06:20 -05:00
Ed Page
a0c592ff81 feat(cli): Provide traceability on config loading 2021-05-14 14:02:58 -05:00
Ed Page
c4050b41a2 fix(cli): Clarify API stabiliy
For now, I'm just punting on `typos_cli`s API.

Fixes #171
2021-05-13 13:34:27 -05:00
Ed Page
b830872ad0 chore: Update enumflags2 2021-05-13 10:20:15 -05:00
Ed Page
60950d02bb feat(cli): Colored output
This supports
- Basic capability detection
- NO_COLOR env variable
- tty detection
- CLI overrides

This does not yet support CLICOLOR.  I'll be trying to upstream all of
this into `yansi` and get it taken care of there.

This only supports Windows Anniversary edition and later which I think
is a fine compromise due to the ergonomic difference between `yansi` and
`termcolor`.

Fixes #30
2021-05-12 21:11:52 -05:00
Ed Page
943ae7f490 refactor(cli)!: Shift Report impls to bin
This way we can add dependencies on things like `yansi` without worrying
about compatibility.
2021-05-12 19:51:41 -05:00
Ed Page
5a4a707004 refactor(cli): Separate out bin 2021-05-04 21:47:34 -05:00
Ed Page
cec850890c
Merge pull request #238 from epage/range
fix(dict)!: Clarify word sizes with Ranges
2021-05-01 08:54:08 -05:00
Ed Page
6216fa0837 fix(dict)!: Clarify word sizes with Ranges
The code was generated with separate min / max, rather than using a
Range and ensuring the API is used correctly.
2021-04-30 21:33:33 -05:00
Ed Page
2fc1f5468e chore(cli): Allow building without expensive parts
The obvious case is building for docs.rs but this can be helpful for
special use cases or faster development iteration.
2021-04-30 21:31:25 -05:00
Ed Page
92a1172bfa feat(ddi): Allow controlling 'unicode' via args 2021-04-30 10:36:55 -05:00
Ed Page
6146824b4e refactor(cli): Share bool logic 2021-04-30 10:26:12 -05:00
Ed Page
517da7ecd2 perf(parser): Allow people to bypass unicode cost 2021-04-29 21:07:59 -05:00
Ed Page
9cbc7410a4 fix(parser)!: Defer to Unicode XID for identifiers
This saves us from having to have configuration for every detail.  If
people need more control, we can offer it later.

Fixes #225
2021-04-29 18:30:57 -05:00
Ed Page
9bfb506c6d fix(typos)!: Clarify Case::Uppers name
`Scream` was referrin to `SCREAMING_CASE` but outside of that context, I
think `Upper` is more accurate.
2021-04-21 20:36:35 -05:00
Ed Page
f36bdc895f test(cli): Cover extract_line 2021-04-12 20:52:15 -05:00
Ed Page
d7978658d4 test(cli): Ensure we apply corrections 2021-04-10 19:13:48 -05:00
Ed Page
a5975ca1ac style: Address clippy 2021-04-10 13:07:07 -05:00
Ed Page
e3c1d234f4 test(config): Ensure file type config is used 2021-04-09 15:58:12 -05:00
Ed Page
225971fd4a fix(config): Ensure we actually use file-type config 2021-04-09 15:57:55 -05:00
Ed Page
a22567c188 test(config): Ensure types are validated 2021-04-07 21:16:41 -05:00
Ed Page
68c0a0d898 test(config): Ensure CLI overrides work 2021-04-07 21:14:41 -05:00
Ed Page
29fafd1a63 test(config): Verify layering 2021-04-07 20:49:52 -05:00
Ed Page
b8294d7afa fix(config): Improve output from --dump-config 2021-04-07 20:49:30 -05:00
Ed Page
8d02a86f2f fix(config): Correct typo in config field name 2021-04-07 20:47:49 -05:00
Ed Page
57ace37ec4 feat(config): Error on invalid types
Fixes #221
2021-04-06 21:28:42 -05:00
Ed Page
2a7bd5b046 feat(config): Add new file types
Fixes #220
2021-04-06 21:18:18 -05:00
Ed Page
c71c9f4f84 refactor(config): Allow extending type matcher 2021-04-06 21:14:47 -05:00
Ed Page
6729bf9f7c refactor(config): Open door for other mutable operations 2021-04-06 21:14:09 -05:00
Ed Page
38a3007c56 fix(config): Properly layer type and override settings 2021-04-06 20:53:34 -05:00
Ed Page
aa21439502 style: Clippy 2021-04-06 10:30:02 -05:00
Ed Page
8f365ee155 feat(config): Show available type definitions 2021-04-05 21:15:41 -05:00
Ed Page
a101df95c2 feat(config): Per-file type settings
Fixes #14
2021-04-05 21:03:49 -05:00
Ed Page
3fd90b09f8 fix(cli): Allow CLI to override walking config 2021-04-05 07:34:05 -05:00
Ed Page
78330ba9c1 refactor(cli): Drop the traits from layering 2021-03-31 21:23:30 -05:00
Ed Page
13617fa9d0 refactor(cli): Decouple walk and engine policies 2021-03-31 20:19:52 -05:00
Ed Page
47eb554052 refactor(cli): Clarify role of file config 2021-03-31 20:06:33 -05:00
Ed Page
d51725b2a4 style: Address clippy 2021-03-30 21:33:39 -05:00
Ed Page
8365351dba perf(cli): Reuse configs across runs 2021-03-29 20:27:12 -05:00
Ed Page
a76ddd42ce refactor(cli): Pull out policy creation 2021-03-29 20:27:12 -05:00
Ed Page
f402d3ee77 refactor(config): Clarify config is not file-specific
This is prep for the config being reused in other contexts, like commit
messages.
2021-03-29 20:27:12 -05:00
Ed Page
4bbc59facf refactor(config)!: Detect when no dict config
In preparing for smarter handling of config, we need to be able to tell
what is present and what isn't.

BREAKING CHANGE: `--hex` was removed, the value didn't seem high enough.
2021-03-29 20:27:12 -05:00
Ed Page
8bcacf3ca6 refactor(cli): Break out config->policy
This is prep for having many policies floating around
2021-03-29 20:27:12 -05:00
Ed Page
b17f9c3a12 feat: Const some fns 2021-03-29 20:27:06 -05:00
Ed Page
75ba4ac535 perf(config): Get small-string optimization 2021-03-01 12:25:51 -06:00
Ed Page
b5827004a2 refactor(config): Simplify 2021-03-01 12:19:56 -06:00
Ed Page
0ea6de6019 refactor(cli): Clarify role of checks 2021-03-01 11:50:23 -06:00
Ed Page
b5f606f201 refactor(typos): Simplify the top-level API 2021-03-01 11:50:23 -06:00
Ed Page
e1e4ce8b61 refactor: Clarify roles 2021-03-01 11:50:23 -06:00