Kat Marchán
23ee3642d1
feat(labels): allow optional labels in derive macro ( #153 )
...
Fixes: https://github.com/zkat/miette/issues/110
2022-04-17 19:41:10 -07:00
Kat Marchán
45093c2f58
feat(help): update macro to allow optional help text ( #152 )
...
Fixes: https://github.com/zkat/miette/issues/148
2022-04-17 18:19:28 -07:00
Rain
5e54b29acf
feat(spans): make SourceSpan implement Copy ( #151 )
...
SourceSpan is just a pair of usizes, so it's cheap to copy.
2022-04-17 15:27:11 -07:00
Rain
97197601ee
fix(theme): set correct field in MietteHandlerOpts::ansi_colors ( #150 )
2022-04-13 17:21:22 -07:00
Kat Marchán
37cda4a3a4
fix(fmt): cargo fmt
2022-04-03 20:31:18 -07:00
Kat Marchán
b98b098282
fix(clippy): misc clippy fixes
2022-04-03 18:33:51 -07:00
Finomnis
b4a9d4cd9b
feat(report): Add conversion from Report to Box<dyn Error> ( #149 )
2022-04-03 13:10:32 -07:00
Bartek Iwańczuk
5151411ebb
feat: add fancy-no-backtrace feature ( #144 )
2022-03-22 12:30:52 -07:00
Christopher Durham
70e84f9a01
fix(handler): Apply MietteHandlerOpts::graphical_theme ( #138 )
...
Fixes: https://github.com/zkat/miette/issues/134
2022-03-18 16:30:00 -07:00
Christopher Durham
b6a6cc9e75
feat(reporter): Allow GraphicalReportHandler to disable url display ( #137 )
2022-03-18 16:28:54 -07:00
Christopher Durham
209275d437
fix(colors): handler_opts.color(false) should disable color ( #133 )
2022-03-17 20:35:45 -07:00
Moritz Mœller
5d23c0d61d
fix(docs): Docs overhaul ( #124 )
...
* Fixed/formatted all intradoc links. Various other small doc fixes/typography/etc.
* Clarified semantic similarity with anyhow/eyre types/macros.
* Removed unused MietteError::SetPrinterFailure.
* README now generaed from lib.rs via `cargo readme`.
* More doc fixes, made ErrorHook type public.
* Indentation (docs).
2022-02-25 08:39:18 -08:00
Paul Colomiets
50bcec909a
fix(handlers): source code propagation for JSON handler ( #122 )
...
A part of fix of #99 , follow up of #117
2022-02-22 16:06:29 -08:00
Paul Colomiets
75d4505e7d
feat(derive): allow `Report` in `related` ( #121 )
...
Fixes : #119
2022-02-21 19:12:37 -08:00
Paul Colomiets
3a17fceabb
feat(handlers): propagate source code to related errors
...
Fixes #99
2022-02-19 16:58:48 -08:00
Paul Colomiets
50519264d4
feat(report): add `with_source_code`
...
Fixes #64
2022-02-19 16:58:48 -08:00
Kat Marchán
5c085b39e2
fix(graphical): boolean was messing up graphical display
2022-02-17 22:25:05 -08:00
Kyle Brown
5b8b5478b6
feat(derive): Make derive macro `diagnostic` attribute more flexible. ( #115 )
...
Fixes : #114
* Improved defaulting
* Added correct combining logic
Added variable number of diagnostic attributes
* Error handling, testing, and docs improvements
Co-authored-by: Kyle Brown <kyleb@liquidrocketry.com>
2022-02-17 22:04:03 -08:00
Paul Colomiets
2649fd27c4
feat(Report): adds `.context()` method to the `Report` ( #109 )
...
Techically there was a hidden undocumented `context` method. But it was
just copied from the `eyre` and there is no evidence that it was used by
any user in miette (the method was an alias for `.handler()`).
Fixes #108
2022-01-17 17:16:08 -08:00
Paul Colomiets
f158f4e370
fix(handlers): Fix label position ( #107 )
...
Fixes #106
While fixing the bug I've also extended the handler to print not just
where label starts but also where label ends.
Also implements #97 , but for narratabble handler only.
This adds dependency on `unicode-width`, but it was already in the
dependency chain (`textwidth` depends on it). Although, previously it
was only for `"fancy"` feature, now it always required since narratable
handler is supported without `"fancy"`.
2022-01-17 11:07:29 -08:00
Kat Marchán
9dcce5f1bd
fix(colors): treat no-color mode as no-color instead of narratable ( #94 )
...
Fixes: https://github.com/zkat/miette/issues/93
BREAKING CHANGE: NO_COLOR no longer triggers the narrated handler. Use
NO_GRAPHICS instead.
2022-01-08 09:11:19 -08:00
Kat Marchán
51146535f5
fix(deps): switch to terminal_size
2022-01-07 17:47:56 -08:00
Paul Colomiets
c205d2e71b
docs: fix mentions of eyre and DiagnosticError ( #100 )
...
Note: `DiagnosticError` is a private type, `Report` returned from
`into_diagnostic()` instead.
2022-01-07 17:35:48 -08:00
Paul Colomiets
645ef6a1b6
fix(json): proper escapes for JSON strings ( #101 )
...
Includes two fixes:
1. Things like `\n` are not doubly-escaped any more
2. The backslash `\` itself in the source is escaped
2022-01-07 17:35:24 -08:00
Paul Colomiets
52e5ec8064
fix(chain): correct `Chain` structure exported ( #102 )
...
This fixes all current complier and clippy warnings.
2022-01-07 17:34:39 -08:00
dvermd
53b246829a
feat(handlers): Add JSON handler ( #90 )
2021-11-15 08:49:22 -08:00
Kirill Vasiltsov
1f70140c2e
feat(tabs): Add replace tabs with spaces option ( #82 )
...
Fixes: https://github.com/zkat/miette/issues/73
2021-10-05 21:05:57 -07:00
Antoine Muller
cb5a919deb
fix(read_span): prevent multilines MietteSpanContents from skipping lines ( #81 )
...
Fixes: https://github.com/zkat/miette/issues/76
2021-10-05 21:05:50 -07:00
Coenen Benjamin
0169fe20e7
feat(SourceSpan): add impl From<Range> ( #78 )
...
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2021-10-01 12:02:39 -07:00
Kat Marchán
bb25edf019
docs: fix doctests
2021-09-26 13:00:39 -07:00
Kat Marchán
47e4d4d05c
docs: add docs for handler options
2021-09-26 12:45:18 -07:00
Kat Marchán
3213fa610a
feat(narrated): global footer and related diagnostics support
2021-09-22 16:34:21 -07:00
Kat Marchán
612967d381
fix(deps): remove dep on itertools
2021-09-22 16:34:21 -07:00
Kat Marchán
fbf6664ef5
feat(narrated): updated narrated handler
2021-09-22 16:34:21 -07:00
Kat Marchán
b33084bdbf
feat(handler): context lines config support
2021-09-22 16:34:21 -07:00
Kat Marchán
b10693a91c
tests: fix doctests and such
2021-09-22 16:34:21 -07:00
Kat Marchán
eea5c29935
fix(read_span): fix off-by-one issue
2021-09-22 16:34:21 -07:00
Kat Marchán
77c5899bbd
fix(graphical): render URLs even without a code
2021-09-22 16:34:21 -07:00
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