From b903ea3d09abf7aba9c415c37b205076b1bc1631 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Mon, 2 Mar 2026 22:12:06 +0100 Subject: Add different error styles --- oryxc/src/errors.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'oryxc/src/errors.rs') diff --git a/oryxc/src/errors.rs b/oryxc/src/errors.rs index b2bab4e..5332d17 100644 --- a/oryxc/src/errors.rs +++ b/oryxc/src/errors.rs @@ -27,6 +27,14 @@ use crate::unicode; const TAB_AS_SPACES: &'static str = " "; const TABSIZE: usize = TAB_AS_SPACES.len(); +#[derive(Clone, Copy, Eq, PartialEq)] +pub enum ErrorStyle { + OneLine, + Standard, +} + +pub static ERROR_STYLE: OnceLock = OnceLock::new(); + pub fn progname() -> &'static OsString { static ARGV0: OnceLock = OnceLock::new(); return ARGV0.get_or_init(|| { @@ -153,6 +161,13 @@ impl OryxError { "{FNAMEBEG}{}:{line}:{col}:{FMTEND} {ERRORBEG}error:{FMTEND} {self}\n", filename.as_ref().display() ); + + if *ERROR_STYLE.get_or_init(|| ErrorStyle::Standard) + == ErrorStyle::OneLine + { + return; + } + let _ = write!( handle, " {line:>4} │ {errbeg}{ERRORBEG}{errmid}{FMTEND}{errend}\n" -- cgit v1.2.3