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