diff options
Diffstat (limited to 'tvix/eval/src/errors.rs')
-rw-r--r-- | tvix/eval/src/errors.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/tvix/eval/src/errors.rs b/tvix/eval/src/errors.rs index b3b45c6cee3d..8ecad80535e0 100644 --- a/tvix/eval/src/errors.rs +++ b/tvix/eval/src/errors.rs @@ -3,7 +3,7 @@ use std::path::PathBuf; use std::{fmt::Display, num::ParseIntError}; use codemap::{CodeMap, Span}; -use codemap_diagnostic::{Diagnostic, Emitter, Level, SpanLabel, SpanStyle}; +use codemap_diagnostic::{ColorConfig, Diagnostic, Emitter, Level, SpanLabel, SpanStyle}; use smol_str::SmolStr; use crate::Value; @@ -141,6 +141,12 @@ impl Error { String::from_utf8_lossy(&out).to_string() } + /// Render a fancy, human-readable output of this error and print + /// it to stderr. + pub fn fancy_format_stderr(&self, codemap: &CodeMap) { + Emitter::stderr(ColorConfig::Auto, Some(codemap)).emit(&[self.diagnostic(codemap)]); + } + /// Create the optional span label displayed as an annotation on /// the underlined span of the error. fn span_label(&self) -> Option<String> { |