Add text prompt support

This commit is contained in:
Patrik Svensson
2020-10-30 14:58:17 +01:00
committed by Patrik Svensson
parent 380c6aca45
commit 0d209d8f18
27 changed files with 1326 additions and 72 deletions

View File

@@ -0,0 +1,55 @@
using System;
using System.IO;
using System.Text;
using Spectre.Console.Rendering;
using Spectre.Console.Tests.Tools;
namespace Spectre.Console.Tests
{
public sealed class TestableAnsiConsole : IDisposable, IAnsiConsole
{
private readonly StringWriter _writer;
private readonly IAnsiConsole _console;
public string Output => _writer.ToString();
public Capabilities Capabilities => _console.Capabilities;
public Encoding Encoding => _console.Encoding;
public int Width { get; }
public int Height => _console.Height;
public IAnsiConsoleCursor Cursor => _console.Cursor;
public TestableConsoleInput Input { get; }
IAnsiConsoleInput IAnsiConsole.Input => Input;
public TestableAnsiConsole(ColorSystem system, AnsiSupport ansi = AnsiSupport.Yes, int width = 80)
{
_writer = new StringWriter();
_console = AnsiConsole.Create(new AnsiConsoleSettings
{
Ansi = ansi,
ColorSystem = (ColorSystemSupport)system,
Out = _writer,
LinkIdentityGenerator = new TestLinkIdentityGenerator(),
});
Width = width;
Input = new TestableConsoleInput();
}
public void Dispose()
{
_writer?.Dispose();
}
public void Clear(bool home)
{
_console.Clear(home);
}
public void Write(Segment segment)
{
_console.Write(segment);
}
}
}