about summary refs log tree commit diff
path: root/tvix/eval/src/errors.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tvix/eval/src/errors.rs')
-rw-r--r--tvix/eval/src/errors.rs8
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> {