From 7998ece6b6fcd02b5dc1cb60e15a933688d1ca4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Luthi?= Date: Tue, 22 Mar 2022 22:36:04 +0100 Subject: [PATCH] Obsolete the AnsiConsoleFactory class (#585) `AnsiConsoleFactory` should be an internal static class. Creating an `IAnsiConsole` can be achieved through `Spectre.Console.AnsiConsole.Create(AnsiConsoleSettings)` Since `AnsiConsoleFactory` is public, it can't be changed from a non static class to a static class so obsoleting it is the second best thing to do. Eventually, when `AnsiConsoleFactory` becomes internal and static, `AnsiConsole.Create` can be simplified to this (and the private static field `_factory` can be removed) ``` public static IAnsiConsole Create(AnsiConsoleSettings settings) { return AnsiConsoleFactory.Create(settings); } ``` --- src/Spectre.Console.Testing/TestConsole.cs | 3 +-- src/Spectre.Console/AnsiConsole.cs | 7 +++++-- src/Spectre.Console/AnsiConsoleFactory.cs | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Spectre.Console.Testing/TestConsole.cs b/src/Spectre.Console.Testing/TestConsole.cs index fe140a9..54ae67f 100644 --- a/src/Spectre.Console.Testing/TestConsole.cs +++ b/src/Spectre.Console.Testing/TestConsole.cs @@ -56,8 +56,7 @@ public sealed class TestConsole : IAnsiConsole, IDisposable Input = new TestConsoleInput(); EmitAnsiSequences = false; - var factory = new AnsiConsoleFactory(); - _console = factory.Create(new AnsiConsoleSettings + _console = AnsiConsole.Create(new AnsiConsoleSettings { Ansi = AnsiSupport.Yes, ColorSystem = (ColorSystemSupport)ColorSystem.TrueColor, diff --git a/src/Spectre.Console/AnsiConsole.cs b/src/Spectre.Console/AnsiConsole.cs index 120b25b..090434d 100644 --- a/src/Spectre.Console/AnsiConsole.cs +++ b/src/Spectre.Console/AnsiConsole.cs @@ -5,6 +5,10 @@ namespace Spectre.Console; /// public static partial class AnsiConsole { +#pragma warning disable CS0618 // 'AnsiConsoleFactory' is obsolete + private static readonly AnsiConsoleFactory _factory = new AnsiConsoleFactory(); +#pragma warning restore CS0618 + private static Recorder? _recorder; private static Lazy _console = new Lazy( () => @@ -61,8 +65,7 @@ public static partial class AnsiConsole /// An instance. public static IAnsiConsole Create(AnsiConsoleSettings settings) { - var factory = new AnsiConsoleFactory(); - return factory.Create(settings); + return _factory.Create(settings); } /// diff --git a/src/Spectre.Console/AnsiConsoleFactory.cs b/src/Spectre.Console/AnsiConsoleFactory.cs index 16c2b10..66d432d 100644 --- a/src/Spectre.Console/AnsiConsoleFactory.cs +++ b/src/Spectre.Console/AnsiConsoleFactory.cs @@ -3,6 +3,7 @@ namespace Spectre.Console; /// /// Factory for creating an ANSI console. /// +[Obsolete("Consider using AnsiConsole.Create instead.")] public sealed class AnsiConsoleFactory { ///