Commit Graph

36 Commits

Author SHA1 Message Date
François Garillot f346d78d21
fix: address review feedback and add feature powerset CI
- Make spin a required dependency for no_std hook support (OnceLock unavailable)
- Simplify cfg guards: not(std) instead of not(std) && spin
- Change clippy alloc/std lints from warn to deny
- Remove no_std stub for from_current_location (compile-time vs runtime error)
- Fix is_graphical cfg logic for fancy-base without fancy-no-backtrace
- Add cargo-hack feature powerset CI job to verify all 56 combinations
2026-01-14 16:31:42 -05:00
François Garillot c07cab4b60
fix: address review feedback for no_std support
- Use core::error::Error directly (MSRV 1.82 supports it)
- Remove build.rs (track_caller is always available with MSRV 1.82)
- Simplify feature detection in handler.rs syscall module
- Add clippy lints to catch std/core/alloc misuse
- Remove custom StdError trait, re-export core::error::Error
- Add __alloc module for derive macro compatibility
- Clean up verbose comments
- Remove extern crate alloc from tests (not needed with std)
- Fix derive macros to use miette::__alloc paths
2026-01-14 15:38:54 -05:00
François Garillot 359941fdef
fix: address review comments
- Fixed compilation errors in no-std mode (TestError Debug derive, ToString imports)
- Addressed consistency issues: Option qualification, StdError naming, Borrow impl
- Fixed feature flag logic for supports_color function with proper priority ordering
- Added conditional compilation for std-dependent features in panic.rs, handler.rs, theme.rs
- Made syntect-highlighter feature explicitly require std
- Consolidated duplicate Borrow implementations using core::borrow::Borrow
2025-11-16 08:59:54 -05:00
François Garillot 18c217f0dc
Add CI job for no-std build verification and fix Infallible StdError implementation
- Add dedicated no-std CI job that builds for wasm32-unknown-unknown target
- Fix Infallible StdError implementation for no-std environments

The CI job validates:
1. Core no-std functionality (no default features)
2. fancy-no-syscall feature set compatible with no-std environments
2025-10-21 07:19:26 -04:00
François Garillot 79fbd0a07d
feat(no_std): Implement comprehensive no_std support
This commit finishes full no_std support to miette.
2025-10-21 07:19:03 -04:00
Paul Schoenfelder 243ea534e8
fix: support no-std environments 2025-10-18 07:25:14 -04:00
cgettys-microsoft 2b79495c79
fix(ci, clippy): raise MSRV to 1.82, fix rust 1.90 warnings (#451)
* fix: remove unused code

* fix: 1.90 errors

* MSRV: 1.82.0

* fix: warnings exposed by increasing MSRV
2025-09-29 09:43:02 -07:00
Brooks Rady 521ef91f77
fix(deps): miette can now be used without syn (#436)
* style(clippy): quickly fix up clippy lints

* refactor(miette): remove `thiserror` from `error.rs`

* fix(fancy): `fancy` no longer depends on `derive`

Before this change, the `fancy` feature required the `derive` feature to
compile. Despite this, `derive` was not listed as a required feature to
use `fancy`. This meant that building with:
`cargo build --no-default-features --features fancy` would result in a
compilation error!

Now `fancy` can be used without `derive` enabled, and another use of
`thiserror` has been removed!

* refactor(miette): remove `thiserror` from `into_diagnostic.rs`

* refactor(miette): reuse `DiagnosticError` in `protocol.rs`

* refactor(miette): make `thiserror` a dev-dependency

* fix(miette): correctly forward error sources

* fix(miette): match `TestError` visibility with `mod tests`

* fix(miette): maintain 1.70 MSRV

* fix(miette): another fix for MSRV 1.70

* docs(miette): sync README and `rustdoc`
2025-04-26 11:34:21 -07:00
Gabriel Levcovitz 58d9f12411
fix(highlight): increase syntax highlighter config priority (#424)
Fixes: https://github.com/zkat/miette/issues/337
2025-03-01 17:58:58 -08:00
ElKowar 771a07519f
feat(graphical): support rendering related diagnostics as nested (#417)
Fixes: https://github.com/zkat/miette/issues/416
2024-12-22 14:06:11 -08:00
Bruce Mitchener 215f9aae33
docs: Fix typos (#398) 2024-09-25 10:28:30 -07:00
Boshen e1026f75e0
fix(clippy): fix Rust v1.78.0 clippy warnings (#382) 2024-06-26 09:31:12 -07:00
Boshen 328bf37922
feat(wasm): add feature "fancy-no-syscall" for wasm targets (#349)
Fixes: https://github.com/zkat/miette/issues/346
2024-02-23 07:42:39 -08:00
Kat Marchán 8b46679c36
fix(graphical): oops. Fix theme issue 2024-02-03 20:12:46 -08:00
Adam Curtis e65d0a78cc
feat(highlighting): add syntax highlighting support with syntect crate (#313) 2024-02-03 19:47:46 -08:00
Boshen f1dc89c076
fix(handler): remove the two extra `is_terminal` sys call from `MietteHandlerOpts::build` (#325)
`GraphicalReportHandler::new()` calls `GraphicalTheme::default()`

7ff4f874d6/src/handlers/graphical.rs (L52)

which calls `std::io::stdout().is_terminal()` and `std::io::stderr().is_terminal()`

7ff4f874d6/src/handlers/theme.rs (L72)

but this default theme is overridden by `with_theme(theme)`.
2024-02-03 19:12:49 -08:00
Zanie Blue b0744462ad
feat(graphical): Add `wrap_lines: bool` option allowing wrapping be disabled entirely (#328) 2024-01-04 10:44:52 -08:00
Zanie Blue fd77257cee
feat(graphical): Expose additional `textwrap` options (#321) 2023-11-15 10:34:24 -08:00
George Pollard 443d240f49
fix(atty): Switch out `atty` for `is-terminal` (#229) 2023-03-13 21:10:21 -07:00
Nathan Whitaker 5f3429b062
fix(miri): Resolve Miri's concerns around unsafe code (#197) 2022-08-25 08:30:18 -07:00
Luca Palmieri b9ea587159
feat(graphical): Allow miette users to opt-out of the rendering of the cause chain (#192)
Fixes: https://github.com/zkat/miette/issues/191
2022-08-09 17:32:02 -07:00
Benjamin Lee 1816b06a2e
feat(theme): restructure automatic color selection (#177)
Fixes: https://github.com/zkat/miette/issues/176

Change the default ansi color theme to use colors that are more similar
to the colors from the default RGB theme. In particular, don't use red
for any of the span labels, since that color is also used for errors.

BREAKING CHANGES:
* the default theme now prefers ANSI colors, even if RGB is supported
* `MietteHandlerOpts::ansi_colors` is removed
* `MietteHandlerOpts::rgb_color` now takes an enum that controls the
  color format used when color support is enabled, and has no effect
  otherwise.
2022-06-24 08:30:36 -07:00
Rain 97197601ee
fix(theme): set correct field in MietteHandlerOpts::ansi_colors (#150) 2022-04-13 17:21:22 -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 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
Kat Marchán 5c085b39e2
fix(graphical): boolean was messing up graphical display 2022-02-17 22:25:05 -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
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
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 b33084bdbf feat(handler): context lines config support 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 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 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