diff options
author | Vincent Ambo <mail@tazj.in> | 2022-10-03T10·21+0300 |
---|---|---|
committer | tazjin <tazjin@tvl.su> | 2022-10-04T21·04+0000 |
commit | d6643f66b1cb8db5fc802ad53ef0d2633a51e815 (patch) | |
tree | 5e2fdcd5c5a9bed3969f6d4081e71bda389a175e /tvix/eval/src/errors.rs | |
parent | 546f445f0788e35b8299f53e2c79d29180c73142 (diff) |
feat(tvix/eval): use fancy error formatting in REPL r/5032
Change-Id: I8d5652d797b012bc3d5248ca2b2d0c87572dbf2e Reviewed-on: https://cl.tvl.fyi/c/depot/+/6851 Tested-by: BuildkiteCI Reviewed-by: wpcarro <wpcarro@gmail.com>
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> { |