using System; using Spectre.Console.Internal; namespace Spectre.Console { /// /// A console capable of writing ANSI escape sequences. /// public static class AnsiConsole { private static readonly Lazy _console = new Lazy(() => { return Create(new AnsiConsoleSettings { Ansi = AnsiSupport.Detect, ColorSystem = ColorSystemSupport.Detect, Out = System.Console.Out, }); }); /// /// Gets the current renderer. /// public static IAnsiConsole Console => _console.Value; /// /// Gets the console's capabilities. /// public static AnsiConsoleCapabilities Capabilities => Console.Capabilities; /// /// Gets the buffer width of the console. /// public static int Width { get => Console.Width; } /// /// Gets the buffer height of the console. /// public static int Height { get => Console.Height; } /// /// Gets or sets the foreground color. /// public static Color Foreground { get => Console.Foreground; set => Console.SetColor(value, true); } /// /// Gets or sets the background color. /// public static Color Background { get => Console.Background; set => Console.SetColor(value, false); } /// /// Gets or sets the style. /// public static Styles Style { get => Console.Style; set => Console.Style = value; } /// /// Creates a new instance /// from the provided settings. /// /// The settings to use. /// An instance. public static IAnsiConsole Create(AnsiConsoleSettings settings) { return ConsoleBuilder.Build(settings); } /// /// Resets colors and styles to the default ones. /// public static void Reset() { Console.Reset(); } /// /// Resets the current style back to the default one. /// public static void ResetStyle() { Console.ResetStyle(); } /// /// Resets the foreground and background colors to the default ones. /// public static void ResetColors() { Console.ResetColors(); } /// /// Writes the content to the console. /// /// The content to write. public static void Write(string content) { Console.Write(content); } /// /// Writes an empty line to the console. /// public static void WriteLine() { Console.WriteLine(); } /// /// Writes a line to the console. /// /// The content to write. public static void WriteLine(string content) { Console.WriteLine(content); } } }