Add support for fake input in asciicast recordings

* Fixes a bug with `SelectionPrompt` and page size.
* Allow `IAnsiConsoleInput` to return `null`.
This commit is contained in:
Patrik Svensson
2021-05-24 02:36:14 +02:00
committed by Phil Scott
parent 46abadaccb
commit 450d87f5d3
56 changed files with 1314 additions and 1166 deletions

View File

@ -0,0 +1,40 @@
using System;
using Spectre.Console;
using Spectre.Console.Rendering;
namespace Generator.Commands
{
public sealed class AsciiCastConsole : IAnsiConsole
{
private readonly IAnsiConsole _console;
private readonly AsciiCastInput _input;
public Profile Profile => _console.Profile;
public IAnsiConsoleCursor Cursor => _console.Cursor;
IAnsiConsoleInput IAnsiConsole.Input => _input;
public AsciiCastInput Input => _input;
public IExclusivityMode ExclusivityMode => _console.ExclusivityMode;
public RenderPipeline Pipeline => _console.Pipeline;
public AsciiCastConsole(IAnsiConsole console)
{
_console = console ?? throw new ArgumentNullException(nameof(console));
_input = new AsciiCastInput();
}
public void Clear(bool home)
{
_console.Clear(home);
}
public void Write(IRenderable renderable)
{
_console.Write(renderable);
}
}
}