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;
}
}
}