Kat Marchán
ce0dea541a
fix(theme): remove code styling
2021-09-22 16:34:21 -07:00
Kat Marchán
717f8e3d88
feat(graphical): add theming customization for linums
2021-09-22 16:34:21 -07:00
JT
a69020422e
fix(graphical): Fix off-by-one span_applies calculation ( #70 )
...
This changes the span_applies calculation to only count spans where the end of the span is considered part of it if the underline spills into it. I believe this happens if, say, the span.offset() is 10 and span.len() is 2, then we want to count offsets 10 and 11 as part of the span and those would spill, but not 12 as it's the "one past the end" where we know when to stop underlining.
2021-09-22 16:34:21 -07:00
Kat Marchán
55ca8e0b7f
fix(api): put panic handler properly behind a flag
2021-09-22 16:34:21 -07:00
Kat Marchán
72c0bb9e65
feat(graphical): compact even more
2021-09-22 16:34:21 -07:00
Kat Marchán
41cb710a7d
fix(context): get labels/snippets working when using .context()
2021-09-22 16:34:21 -07:00
Kat Marchán
db637a366b
feat(graphical): compact graphical display a bit
2021-09-22 16:34:21 -07:00
Kat Marchán
8e11baab7b
feat(related): Add related diagnostics ( #68 )
...
Fixes: https://github.com/zkat/miette/issues/47
2021-09-22 16:34:21 -07:00
Kat Marchán
18e0ed7749
fix(graphical): fix coalescing adjacent things when they cross boundaries
2021-09-22 16:34:21 -07:00
Kat Marchán
6c6484633e
feat(graphical): simplify graphical header and remove a dep
2021-09-22 16:34:21 -07:00
Kat Marchán
e2e4027fda
fix(graphical): stop rendering red vbars before the last item
2021-09-22 16:34:21 -07:00
Kat Marchán
858ac16935
feat(panic): add backtrace support to panic handler and move set_panic_hook into fancy features
2021-09-22 16:34:21 -07:00
Kat Marchán
c6daee7b93
feat(panic): Add basic panic handler and installation function
...
Fixes: https://github.com/zkat/miette/issues/22
2021-09-22 16:34:21 -07:00
Kat Marchán
2cff68449c
misc: remove stale comment
2021-09-22 16:34:21 -07:00
Kat Marchán
1a0f359e3c
feat(report): nicer, non-overlapping same-line highlights
2021-09-22 16:34:21 -07:00
Kat Marchán
4bb9d12102
feat(handlers): Update graphical handler to use new label protocol ( #66 )
2021-09-22 16:34:21 -07:00
Kat Marchán
9aa8ff0d31
feat(protocol): Make SourceCode Send+Sync
2021-09-22 16:34:21 -07:00
Kat Marchán
f87b158b22
feat(labels): replace snippet stuff with simpler labels ( #62 )
2021-09-22 16:34:21 -07:00
Kat Marchán
9841d6fd77
feat(report): add debug report as default, instead of narrated one
2021-09-22 16:34:21 -07:00
Kat Marchán
c3505fac26
fix(protocol): implement source/cause for Box<dyn Diagnostic>
2021-09-22 16:34:21 -07:00
Kat Marchán
2c43740346
feat(theme): more styling changes
2021-09-22 16:34:21 -07:00
Kat Marchán
c5c0576ec6
feat(theme): rename some theme items for clarity
...
BREAKING CHANGE: These were part of the public API, so if you were using theming, this might have broken for you
2021-09-22 16:34:21 -07:00
Kat Marchán
93374173e3
feat(footer): add footer support to graphical and narrated
...
Fixes: https://github.com/zkat/miette/issues/34
2021-09-22 16:34:21 -07:00
Kat Marchán
247e8f8b39
feat(deps): move fancy reporter (and its deps) to a feature
...
BREAKING CHANGE: The default fancy reporter is no longer available unless you enable the "fancy" feature. This also means you will not be pulling in a bunch of deps if you are using miette for a library
Fixes: https://github.com/zkat/miette/issues/25
2021-09-22 16:34:21 -07:00
Kat Marchán
4c2463f9ae
feat(report): make a single big MietteHandler that can switch modes
...
BREAKING CHANGE: linkification option method on GraphicalReportHandler has been changed to .with_links(bool)
2021-09-22 16:34:21 -07:00
Kat Marchán
80036781cd
fix(report): miscellaneous, hacky tweaks to graphical rendering
2021-09-22 16:34:21 -07:00
Kat Marchán
673b435892
tests: remove compile_tests
2021-09-13 18:33:13 -07:00
Cormac Relf
2fa5551c81
feat(derive): Add `#[diagnostic(forward(field_name), code(...))]` ( #41 )
2021-09-13 15:39:04 -07:00
Robin Appelman
d994add912
fix(report): Fix end of previous line wrongly being included in highlight ( #52 )
2021-09-13 09:57:54 -07:00
Kat Marchán
eb07d5bd66
fix(report): fix wrapping for header and add wrapping for footer
2021-09-11 00:57:53 -07:00
Kat Marchán
eaebde92cf
feat(report): make header line as wide as terminal
2021-09-10 17:09:52 -07:00
Kat Marchán
bc72532465
feat(report): take terminal width into account for wrapping text
2021-09-10 12:39:10 -07:00
Kat Marchán
f482dcec6a
feat(report): wrap multiline messages to keep formatting
...
Fixes: https://github.com/zkat/miette/issues/51
2021-09-10 08:16:40 -07:00
Kat Marchán
1ba3f2f5d2
fix(report): get rid of the weird arrow thing. it does not look good
2021-09-10 07:36:09 -07:00
Kat Marchán
e4fdac38ea
fix(context): pass on diagnostic metadata when wrapping with `Report`
2021-09-09 20:27:27 -07:00
Kat Marchán
533ff5f348
fix(reporter): improve color situation and style things a little nicer
2021-09-08 20:59:19 -07:00
Kat Marchán
6422f82174
fix(report): don't color error message text to draw eyes back to it
2021-09-08 18:29:41 -07:00
Kat Marchán
824cd8bebe
feat(printer): use uparrow for empty highlights and fix 0-offset display bug
2021-09-07 17:41:28 -07:00
Kat Marchán
3f9da04b86
feat(report): anyhow-ify DiagnosticReport ( #35 )
...
This PR overhauls the toplevel/main experience for `miette`. It adds a new `Report` type based on `eyre::Report` and overhauls various types to fit into this model, as well as prepare for some [future changes in Rust](https://github.com/nrc/rfcs/pull/1 ) that will make it possible to integrate `miette` directly with crates like `eyre` instead of having to use this specific `Report`.
As such, this PR is a major breaking change, especially for anyone using `DiagnosticReport` and company.
BREAKING CHANGES:
* `DiagnosticReport` is now just `Report`, and is a different, `eyre::Report`-like type.
* `DiagnosticResult` is now just `Result`.
* `.into_diagnostic()` now just transforms the error into a `Report`.
* `DiagnosticReportPrinter` has been replaced with `ReportHandler`
* `set_printer` has been replaced by `set_hook`
* `code` is now optional.
* `.into_diagnostic()` no longer takes a `code` argument.
* `#[diagnostic]` is now optional when deriving `Diagnostic`.
2021-09-04 21:22:46 -07:00
Sean Olson
0427c9f966
feat(source): Remove bound `T: Clone` from `Source` implementation for `Cow`. ( #42 )
...
This change removes the bound `T: Clone` in the implementation of
`Source` for `Cow<'_, T>`. This expands the implementation of `Source`
to include types like `Cow<'_, str>`. Importantly, `Cow` always requires
the bound `T: ToOwned` and uses `ToOwned` to implement `Clone` rather
than forwarding to `T::clone`.
2021-08-30 18:41:27 -07:00
Cormac Relf
84219f6c80
fix(printer): Show snippet message for unnamed sources ( #39 )
...
Fixes: https://github.com/zkat/miette/issues/38
2021-08-29 19:28:17 -07:00
Cormac Relf
50c7a88360
feat(Source): impl Source for str, &str (make &'static str usable for testing) ( #40 )
2021-08-29 19:07:07 -07:00
Felipe Seré
5a474370dd
fix(reporter): Only inc the line count if we haven't already done so with '\n' or '\r\n' ( #37 )
2021-08-29 12:33:45 -07:00
Cormac Relf
53f5d6d1d6
feat(derive): Add `#[diagnostic(transparent,forward)]` ( #36 )
...
Fixes: https://github.com/zkat/miette/issues/16
2021-08-29 12:33:16 -07:00
Tyler Bindon
9d6015996b
fix(printer): clamp highlight length to at least 1 ( #32 )
...
Fixes: https://github.com/zkat/miette/issues/31
2021-08-22 19:30:21 -07:00
Kat Marchán
61283e9efe
feat(snippets): Overhauled how snippets handle labels, sources, and messages, including the derive macro
...
BREAKING CHANGE: this will probably break a lot of your stuff. hopefully rustc helps
2021-08-22 19:06:47 -07:00
Kat Marchán
2d886c06a3
docs: dogfood url(docsrs)
2021-08-22 15:59:27 -07:00
Kat Marchán
7e76e2dea4
feat(links): added URL linking support and automatic docs.rs link generation
...
Fixes: https://github.com/zkat/miette/issues/17
2021-08-22 15:42:08 -07:00
Kat Marchán
3546dcec98
feat(theme): Add an initial `rgb` style with nicer colors
2021-08-22 10:56:10 -07:00
Kat Marchán
eb4ea3423a
docs: add error code aliases
...
miette can't do this yet, but I can still do it by hand!
2021-08-22 00:22:38 -07:00
Kat Marchán
0fecc42f76
fmt: cargo fmt --all
2021-08-21 23:24:45 -07:00
Kat Marchán
949174e598
misc: more aggressive linting for quality~
2021-08-21 23:13:25 -07:00
Kat Marchán
20bb3db3fa
docs: overhaul readme and make sure everything is documented
...
Fixes: https://github.com/zkat/miette/issues/15
2021-08-21 22:57:16 -07:00
Kat Marchán
c1da4a0d27
feat(into_diagnostic): .into_diagnostic() is now generic across any impl fmt::Display instead of expecting a `dyn`
2021-08-21 22:55:45 -07:00
Kat Marchán
5c077d30a4
fix(protocol): oops, missed a spot after a rename
2021-08-21 22:54:59 -07:00
Kat Marchán
aafa4a3de1
feat(printer): rename default printer and consistify some naming conventions with printing
...
BREAKING CHANGE: This is a significant API break.
2021-08-21 22:52:06 -07:00
Kat Marchán
e980b72373
feat(error): diagnostic-ify MietteError
2021-08-21 22:49:00 -07:00
Kat Marchán
5369a9424e
feat(printer): added (and hooked up) an accessible report printer
...
Fixes: https://github.com/zkat/miette/issues/28
2021-08-21 15:32:31 -07:00
Kat Marchán
b5c4118e59
misc: cargo fmt
2021-08-21 00:11:41 -07:00
Kat Marchán
5fbcd53026
feat(printer): lots of small improvements to printer
2021-08-20 23:52:15 -07:00
Kat Marchán
d675334e48
feat(reporter): fancy new reporter with unicode, colors, and multiline ( #23 )
...
Fixes: https://github.com/zkat/miette/issues/3
Fixes: https://github.com/zkat/miette/issues/5
2021-08-20 20:09:23 -07:00
Kat Marchán
29c1403efd
feat(reporter): Overhauled return type/main/DiagnosticReport experience.
...
Fixes: https://github.com/zkat/miette/issues/13
2021-08-17 23:41:03 -07:00
Kat Marchán
26f409c525
feat(offsets): nice utility function to get an offset from a Rust callsite
...
Fixes: https://github.com/zkat/miette/issues/19
2021-08-17 19:18:57 -07:00
Kat Marchán
75c2312755
feat(offsets): utility function for converting from line/col to offset
2021-08-17 18:31:12 -07:00
Kat Marchán
95200366a1
feat(offsets): more utility From impls for SourceSpan
2021-08-17 18:30:38 -07:00
Kat Marchán
53074d3488
feat(protocol): add Source impls for Cow and Arc
2021-08-17 17:54:29 -07:00
Kat Marchán
49151bb095
fix(protocol): keep the owned spans
2021-08-17 17:15:05 -07:00
Kat Marchán
f390520b45
feat(protocol): reference-based DiagnosticReport!
2021-08-17 15:30:52 -07:00
Kat Marchán
acfeb9c5b0
feat(protocol): new SourceSpans with labels
2021-08-17 08:41:20 -07:00
Kat Marchán
36b86df9f5
feat(protocol): implement From<(usize, usize)> for SourceSpan
2021-08-16 23:46:32 -07:00
Kat Marchán
0e7702700d
feat(derive): added basic derive macro
...
This should be good for most basic use cases. More features will be added over time :)
2021-08-15 11:49:02 -07:00
Kat Marchán
a960136802
feat(utils): various convenience utilities for creating and working with Diagnostics
2021-08-14 13:32:22 -07:00
Kat Marchán
d201dde4b5
fix(reporter): fix reporter and tests... again
2021-08-10 22:47:28 -04:00
Kat Marchán
0d2e3312a4
fix(reporter): fix extra newline after header
2021-08-10 22:04:28 -04:00
Kat Marchán
02dd1f84d4
feat(protocol): Simplify protocol return values further
...
BREAKING CHANGE: Switched to Box instead of & for help/code return values.
2021-08-10 21:40:25 -04:00
Kat Marchán
b08e5cca62
format: cargo fmt
2021-08-10 19:21:31 -04:00
Kat Marchán
9d430b6f47
fix(reporter): fix missing newline before help text
2021-08-10 19:21:31 -04:00
Kat Marchán
3584dc600c
feat(protocol): improvements to snippets API
2021-08-07 22:59:20 -04:00
Kat Marchán
80e7dabbe4
feat(protocol): help is a single Display ref now.
2021-08-07 22:57:56 -04:00
Kat Marchán
7920a2315c
feat(protocol: Severity is now optional
2021-08-07 22:54:46 -04:00
Kat Marchán
781a51f037
fix(protocol): fix the default From<:T Diagnostic> implementation to cover more cases.
2021-08-05 13:24:37 -07:00
Kat Marchán
50238d75a2
feat(protocol): Make usafe of ? and return types with Diagnostics more ergonomic
2021-08-05 12:37:11 -07:00
Kat Marchán
e955321cbd
fix(protocol): protocol improvements after getting feedback
2021-08-05 09:12:41 -07:00
Kat Marchán
2fb9f93cbf
fix(api): stop re-exporting random things wtf???
2021-08-04 20:28:19 -07:00
Kat Marchán
6b51694733
feat(protocol) overhauled entire protocol to be based on byte offsets ( #1 )
...
Includes other improvements!
BREAKING CHANGE: Yeah this is pretty much a rewrite.
2021-08-04 20:27:12 -07:00
Kat Marchán
1cb0ad3852
feat(span): make span end optional
2021-08-03 12:56:56 -07:00
Kat Marchán
f8cf66cd90
refactor: move detail rendering out for clarity
2021-08-03 07:52:25 -07:00
Kat Marchán
3ad7666777
feat(miette): you nerd-snipe miette into writing a joke reporter?? jail for mother!!
2021-08-03 01:13:12 -07:00
Kat Marchán
a437f44511
feat(reporter): dummy reporter implementation + tests
2021-08-03 00:52:10 -07:00
Kat Marchán
c3f41b972d
fix(protocol): use references forr all return values in Diagnostic
2021-08-02 23:20:15 -07:00
Kat Marchán
e2387ce2ed
feat(protocol): sketched out a basic protocol
2021-08-02 23:08:51 -07:00
Kat Marchán
457849721f
initial commit
2021-08-02 19:36:02 -07:00