feat: add fancy-no-backtrace feature (#144)

This commit is contained in:
Bartek Iwańczuk 2022-03-22 20:30:52 +01:00 committed by GitHub
parent 70e84f9a01
commit 5151411ebb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 18 additions and 15 deletions

View File

@ -38,7 +38,7 @@ syn = { version = "1.0", features = ["full"] }
[features]
default = []
fancy = [
fancy-no-backtrace = [
"owo-colors",
"atty",
"textwrap",
@ -46,6 +46,9 @@ fancy = [
"supports-hyperlinks",
"supports-color",
"supports-unicode",
]
fancy = [
"fancy-no-backtrace",
"backtrace",
]

View File

@ -26,10 +26,10 @@ pub use ReportHandler as EyreContext;
#[allow(unreachable_pub)]
pub use WrapErr as Context;
#[cfg(not(feature = "fancy"))]
#[cfg(not(feature = "fancy-no-backtrace"))]
use crate::DebugReportHandler;
use crate::Diagnostic;
#[cfg(feature = "fancy")]
#[cfg(feature = "fancy-no-backtrace")]
use crate::MietteHandler;
use error::ErrorImpl;
@ -98,9 +98,9 @@ fn capture_handler(error: &(dyn Diagnostic + 'static)) -> Box<dyn ReportHandler>
}
fn get_default_printer(_err: &(dyn Diagnostic + 'static)) -> Box<dyn ReportHandler + 'static> {
#[cfg(feature = "fancy")]
#[cfg(feature = "fancy-no-backtrace")]
return Box::new(MietteHandler::new());
#[cfg(not(feature = "fancy"))]
#[cfg(not(feature = "fancy-no-backtrace"))]
return Box::new(DebugReportHandler::new());
}

View File

@ -5,20 +5,20 @@ Reporters included with `miette`.
#[allow(unreachable_pub)]
pub use debug::*;
#[allow(unreachable_pub)]
#[cfg(feature = "fancy")]
#[cfg(feature = "fancy-no-backtrace")]
pub use graphical::*;
#[allow(unreachable_pub)]
pub use json::*;
#[allow(unreachable_pub)]
pub use narratable::*;
#[allow(unreachable_pub)]
#[cfg(feature = "fancy")]
#[cfg(feature = "fancy-no-backtrace")]
pub use theme::*;
mod debug;
#[cfg(feature = "fancy")]
#[cfg(feature = "fancy-no-backtrace")]
mod graphical;
mod json;
mod narratable;
#[cfg(feature = "fancy")]
#[cfg(feature = "fancy-no-backtrace")]
mod theme;

View File

@ -531,7 +531,7 @@ pub use miette_derive::*;
pub use error::*;
pub use eyreish::*;
#[cfg(feature = "fancy")]
#[cfg(feature = "fancy-no-backtrace")]
pub use handler::*;
pub use handlers::*;
pub use named_source::*;
@ -542,7 +542,7 @@ pub use protocol::*;
mod chain;
mod error;
mod eyreish;
#[cfg(feature = "fancy")]
#[cfg(feature = "fancy-no-backtrace")]
mod handler;
mod handlers;
mod named_source;

View File

@ -1,4 +1,4 @@
#![cfg(feature = "fancy")]
#![cfg(feature = "fancy-no-backtrace")]
use miette::{
Diagnostic, GraphicalReportHandler, GraphicalTheme, MietteError, NamedSource,

View File

@ -1,4 +1,4 @@
#![cfg(feature = "fancy")]
#![cfg(feature = "fancy-no-backtrace")]
use miette::{Diagnostic, MietteError, NamedSource, NarratableReportHandler, Report, SourceSpan};
@ -9,8 +9,8 @@ use thiserror::Error;
fn fmt_report(diag: Report) -> String {
let mut out = String::new();
// Mostly for dev purposes.
if cfg!(feature = "fancy") && std::env::var("STYLE").is_ok() {
#[cfg(feature = "fancy")]
if cfg!(feature = "fancy-no-backtrace") && std::env::var("STYLE").is_ok() {
#[cfg(feature = "fancy-no-backtrace")]
GraphicalReportHandler::new_themed(GraphicalTheme::unicode())
.render_report(&mut out, diag.as_ref())
.unwrap();