mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-06-20 05:48:14 +08:00
Add output abstraction and reorganize profile
* Moves ColorSystem from Profile to Capabilities * Renames Tty to IsTerminal * Adds IAnsiConsoleOutput to make output more flexible Closes #343 Closes #359 Closes #369
This commit is contained in:

committed by
Phil Scott

parent
bc9f610258
commit
3e2eea730b
@ -0,0 +1,19 @@
|
||||
namespace Spectre.Console.Internal
|
||||
{
|
||||
internal sealed class EncoderCapabilities : IReadOnlyCapabilities
|
||||
{
|
||||
public ColorSystem ColorSystem { get; }
|
||||
|
||||
public bool Ansi => false;
|
||||
public bool Links => false;
|
||||
public bool Legacy => false;
|
||||
public bool IsTerminal => false;
|
||||
public bool Interactive => false;
|
||||
public bool Unicode => true;
|
||||
|
||||
public EncoderCapabilities(ColorSystem colors)
|
||||
{
|
||||
ColorSystem = colors;
|
||||
}
|
||||
}
|
||||
}
|
@ -9,7 +9,7 @@ namespace Spectre.Console.Internal
|
||||
{
|
||||
public string Encode(IAnsiConsole console, IEnumerable<IRenderable> renderables)
|
||||
{
|
||||
var context = new RenderContext(ColorSystem.TrueColor, EncoderCapabilities.Default);
|
||||
var context = new RenderContext(new EncoderCapabilities(ColorSystem.TrueColor));
|
||||
var builder = new StringBuilder();
|
||||
|
||||
builder.Append("<pre style=\"font-size:90%;font-family:consolas,'Courier New',monospace\">\n");
|
||||
|
@ -4,23 +4,11 @@ using Spectre.Console.Rendering;
|
||||
|
||||
namespace Spectre.Console.Internal
|
||||
{
|
||||
internal sealed class EncoderCapabilities : IReadOnlyCapabilities
|
||||
{
|
||||
public bool Ansi => false;
|
||||
public bool Links => false;
|
||||
public bool Legacy => false;
|
||||
public bool Tty => false;
|
||||
public bool Interactive => false;
|
||||
public bool Unicode => true;
|
||||
|
||||
public static EncoderCapabilities Default { get; } = new EncoderCapabilities();
|
||||
}
|
||||
|
||||
internal sealed class TextEncoder : IAnsiConsoleEncoder
|
||||
{
|
||||
public string Encode(IAnsiConsole console, IEnumerable<IRenderable> renderables)
|
||||
{
|
||||
var context = new RenderContext(ColorSystem.TrueColor, EncoderCapabilities.Default);
|
||||
var context = new RenderContext(new EncoderCapabilities(ColorSystem.TrueColor));
|
||||
var builder = new StringBuilder();
|
||||
|
||||
foreach (var renderable in renderables)
|
||||
|
Reference in New Issue
Block a user