namespace Spectre.Console; /// /// Represents console output. /// public sealed class AnsiConsoleOutput : IAnsiConsoleOutput { /// public TextWriter Writer { get; } /// public bool IsTerminal { get { if (Writer.IsStandardOut()) { return !System.Console.IsOutputRedirected; } if (Writer.IsStandardError()) { return !System.Console.IsErrorRedirected; } return false; } } /// public int Width => ConsoleHelper.GetSafeWidth(); /// public int Height => ConsoleHelper.GetSafeHeight(); /// /// Initializes a new instance of the class. /// /// The output writer. public AnsiConsoleOutput(TextWriter writer) { Writer = writer ?? throw new ArgumentNullException(nameof(writer)); } /// public void SetEncoding(Encoding encoding) { if (Writer.IsStandardOut() || Writer.IsStandardError()) { System.Console.OutputEncoding = encoding; } } }