Change IAnsiConsole to render IRenderable

This makes it possible for encoders to output better representation
of the actual objects instead of working with chopped up segments.

* IAnsiConsole.Write now takes an IRenderable instead of segments
* Calculating cell width does no longer require a render context
* Removed RenderContext.LegacyConsole
* Removed RenderContext.Encoding
* Added Capabilities.Unicode
This commit is contained in:
Patrik Svensson
2021-03-24 23:09:24 +01:00
committed by Phil Scott
parent 2ba6da3514
commit 20650f1e7e
75 changed files with 492 additions and 553 deletions

View File

@@ -19,7 +19,7 @@ namespace Spectre.Console.Tests.Unit
var console = new FakeConsole(width: 40);
// When
console.Render(new Rule());
console.Write(new Rule());
// Then
return Verifier.Verify(console.Output);
@@ -33,7 +33,7 @@ namespace Spectre.Console.Tests.Unit
var console = new FakeConsole(width: 40);
// When
console.Render(new Rule().DoubleBorder());
console.Write(new Rule().DoubleBorder());
// Then
return Verifier.Verify(console.Output);
@@ -47,7 +47,7 @@ namespace Spectre.Console.Tests.Unit
var console = new FakeConsole(width: 40);
// When
console.Render(new Rule("Hello World").DoubleBorder());
console.Write(new Rule("Hello World").DoubleBorder());
// Then
return Verifier.Verify(console.Output);
@@ -61,7 +61,7 @@ namespace Spectre.Console.Tests.Unit
var console = new FakeConsole(width: 40);
// When
console.Render(new Rule("Hello World"));
console.Write(new Rule("Hello World"));
// Then
return Verifier.Verify(console.Output);
@@ -75,7 +75,7 @@ namespace Spectre.Console.Tests.Unit
var console = new FakeConsole(width: 40);
// When
console.Render(new Rule("Hello World")
console.Write(new Rule("Hello World")
{
Alignment = Justify.Left,
});
@@ -92,7 +92,7 @@ namespace Spectre.Console.Tests.Unit
var console = new FakeConsole(width: 40);
// When
console.Render(new Rule("Hello World")
console.Write(new Rule("Hello World")
{
Alignment = Justify.Right,
});
@@ -109,7 +109,7 @@ namespace Spectre.Console.Tests.Unit
var console = new FakeConsole(width: 40);
// When
console.Render(new Rule("Hello\nWorld\r\n!"));
console.Write(new Rule("Hello\nWorld\r\n!"));
// Then
return Verifier.Verify(console.Output);
@@ -123,7 +123,7 @@ namespace Spectre.Console.Tests.Unit
var console = new FakeConsole(width: 40);
// When
console.Render(new Rule(" Hello World "));
console.Write(new Rule(" Hello World "));
// Then
return Verifier.Verify(console.Output);
@@ -149,7 +149,7 @@ namespace Spectre.Console.Tests.Unit
var console = new FakeConsole(width);
// When
console.Render(new Rule(input));
console.Write(new Rule(input));
// Then
console.Lines.Count.ShouldBe(1);