Spectre.console,.NET中漂亮的控制台应用程序

2020-11-11 00:23:40

一个.NET Standard 2.0库,它使创建漂亮的控制台应用程序变得更容易。它在很大程度上受到了优秀的针对Python的Rich库的启发。

在设置文本样式时,支持最常用的SRG参数,如粗体、暗淡、斜体、下划线、删除线和闪烁文本。

终端支持3/4/8/24位颜色。该库将检测当前终端的功能,并根据需要降级颜色。

Spectre.Console API是有状态的,并且不是线程安全的。如果您需要从不同的线程写入控制台,请确保采取适当的预防措施,就像使用规则的System.Console API一样。

如果当前终端不支持ANSI转义序列,spectre.Console将回退到使用System.Console API。

注意:这个库目前还在开发中,在1.0版本之前,API可能会随时更改或删除。

当您只想像通常使用System.Console API那样输出文本时,静态API是完美的,但更美观。

如果您想获取对默认IAnsiConsole的引用,可以通过AnsiConsole.Console访问它。

有时候,显式地创建一个具有特定功能的控制台是很有用的,比如在单元测试期间,当您想要控制代码运行的环境时。

建议不要在作为单元测试一部分运行的代码中使用AnsiConsole。

IAnsiConsoleConsole=AnsiConsole.。创建(new AnsiConsoleSettings(){ansi=AnsiSupport.。是的,ColorSystem=ColorSystemSupport。TrueColor,out=new StringWriter(),});

注意:即使您可以在手动创建控制台时指定要使用的特定配色系统,请记住用户的终端可能无法使用它,因此除非您要创建用于测试的IAnsiConsole,否则请始终使用ColorSystemSupport.Detect和AnsiSupport.Detect。

>;Dotnet example╭─┬──┬───╮│Name│Path│Description│├─。─┼──┼───┤│边框│示例/边框/Borders.csproj│演示了不同类型的边框。││Calendars│Examples/Calendars/Calendars.csproj│演示了如何呈现日历。││Colors│Examples/Colors.csproj│演示如何在控制台中使用颜色。││Columns│Examples/Columns.csproj│演示了如何将数据呈现到列中。││emojis│Examples/emojis/Emojis.csproj│演示如何呈现emoji。││Exceptions│Examples/Exceptions.csproj│演示了如何呈现格式化异常。││Grid│Examples/Grids/Grids.csproj│演示了如何在控制台中呈现网格。││信息│示例/信息/info.csproj│显示当前控制台的功能。││Links│Examples/Links.csproj│演示了如何在控制台中呈现链接。││Panels│Examples/Panels.csproj│演示了如何在面板中呈现项目。││Rules│Examples/Rules/Rules.csproj│演示了如何呈现水平标尺(线条)。││Tables│Examples/Tables/Tables.csproj│演示了如何在控制台中呈现表格。│╰─┴──┴───╯。

>;Dotnet示例表格┌─┬─┬─┐│Foo│Bar│BAZ│├─┼─┼─┤│Hello│World!│││Bonjour│le│Monde!││hej│Världen!││└─┴─。───┴─┘