Files
spectre.console/src/Spectre.Console/ConsoleExtensions.Rendering.cs
Patrik Svensson 98cf63f485 Rename Style and Appearance
* Renames Style -> Decoration
* Renames Appearance -> Style
* Adds Style.Parse and Style.TryParse
2020-08-03 23:30:47 +02:00

46 lines
1.3 KiB
C#

using System;
using Spectre.Console.Composition;
using Spectre.Console.Internal;
namespace Spectre.Console
{
/// <summary>
/// Contains extension methods for <see cref="IAnsiConsole"/>.
/// </summary>
public static partial class ConsoleExtensions
{
/// <summary>
/// Renders the specified object to the console.
/// </summary>
/// <param name="console">The console to render to.</param>
/// <param name="renderable">The object to render.</param>
public static void Render(this IAnsiConsole console, IRenderable renderable)
{
if (console is null)
{
throw new ArgumentNullException(nameof(console));
}
if (renderable is null)
{
throw new ArgumentNullException(nameof(renderable));
}
foreach (var segment in renderable.Render(console.Encoding, console.Width))
{
if (!segment.Style.Equals(Style.Plain))
{
using (var style = console.PushStyle(segment.Style))
{
console.Write(segment.Text);
}
}
else
{
console.Write(segment.Text);
}
}
}
}
}