From ddcc1b6f40a576953614ad43b9837b5a3aa02707 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 8 Oct 2023 04:10:04 +0100 Subject: [PATCH] [Console] Use `Spectre.Console` to show exceptions in the CLI. GUI still uses `ConsoleWindow`. --- AaruConsole.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/AaruConsole.cs b/AaruConsole.cs index b7ad8a6..d57bd88 100644 --- a/AaruConsole.cs +++ b/AaruConsole.cs @@ -30,6 +30,7 @@ // Copyright © 2011-2023 Natalia Portillo // ****************************************************************************/ +using System; using System.Diagnostics.CodeAnalysis; namespace Aaru.Console; @@ -107,6 +108,12 @@ public delegate void DebugWriteHandler(string format, params object[] arg); /// An array of objects to write using . public delegate void DebugWithModuleWriteLineHandler(string module, string format, params object[] arg); +/// +/// Writes the exception to the debug output console. +/// +/// Exception. +public delegate void WriteExceptionHandler(Exception ex); + /// /// Implements a console abstraction that defines four level of messages that can be routed to different consoles: /// standard, error, verbose and debug. @@ -141,6 +148,9 @@ public static class AaruConsole /// Event to receive writings to the debug output console. public static event DebugWriteHandler DebugWriteEvent; + /// Event to receive exceptions to write to the debug output console. + public static event WriteExceptionHandler WriteExceptionEvent; + /// /// Writes the text representation of the specified array of objects, followed by the current line terminator, to /// the standard output console using the specified format information. @@ -242,4 +252,11 @@ public static class AaruConsole /// The value to write. public static void DebugWriteLine(string module, string value) => DebugWriteLineEvent?.Invoke("{0}", "DEBUG (" + module + "): " + value); + + /// + /// Writes the exception to the debug output console. + /// + /// Exception. + public static void WriteException(Exception ex) => + WriteExceptionEvent?.Invoke(ex); } \ No newline at end of file