main e1c05b4402de cached
797 files
3.8 MB
1.0M tokens
2843 symbols
1 requests
Download .txt
Showing preview only (4,166K chars total). Download the full file or copy to clipboard to get everything.
Repository: spectreconsole/spectre.console
Branch: main
Commit: e1c05b4402de
Files: 797
Total size: 3.8 MB

Directory structure:
gitextract_rd6qn2_s/

├── .editorconfig
├── .git-blame-ignore-revs
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   └── feature_request.md
│   ├── pull_request_template.md
│   ├── renovate.json
│   └── workflows/
│       ├── ci.yaml
│       ├── publish.yaml
│       └── top-issues-dashboard.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE.md
├── NuGet.Config
├── README.fa.md
├── README.jp.md
├── README.md
├── README.pt-BR.md
├── README.zh.md
├── build.cs
├── dotnet-tools.json
├── global.json
├── resources/
│   ├── nuget/
│   │   ├── Spectre.Console.Ansi.md
│   │   ├── Spectre.Console.ImageSharp.md
│   │   ├── Spectre.Console.Json.md
│   │   ├── Spectre.Console.Testing.md
│   │   └── Spectre.Console.md
│   ├── scripts/
│   │   ├── .gitignore
│   │   ├── Generate-Colors.ps1
│   │   ├── Generate-Emoji.ps1
│   │   └── Generate-Spinners.ps1
│   ├── signclient.filter
│   └── spectre.snk
└── src/
    ├── .editorconfig
    ├── Benchmarks/
    │   ├── BenchmarkDotNet.Artifacts/
    │   │   └── results/
    │   │       ├── Benchmarks.AnsiBenchmarks-report-github.md
    │   │       └── Benchmarks.RenderBenchmarks-report-github.md
    │   ├── Benchmarks.csproj
    │   ├── EmojiBenchmarks.cs
    │   ├── MarkupBenchmarks.cs
    │   ├── ParagraphBenchmarks.cs
    │   └── Program.cs
    ├── Directory.Build.props
    ├── Directory.Packages.props
    ├── Extensions/
    │   ├── Spectre.Console.ImageSharp/
    │   │   ├── CanvasImage.cs
    │   │   ├── CanvasImageExtensions.cs
    │   │   └── Spectre.Console.ImageSharp.csproj
    │   └── Spectre.Console.Json/
    │       ├── IJsonParser.cs
    │       ├── JsonBuilder.cs
    │       ├── JsonParser.cs
    │       ├── JsonText.cs
    │       ├── JsonTextStyles.cs
    │       ├── JsonToken.cs
    │       ├── JsonTokenReader.cs
    │       ├── JsonTokenType.cs
    │       ├── JsonTokenizer.cs
    │       ├── Properties/
    │       │   └── Usings.cs
    │       ├── Spectre.Console.Json.csproj
    │       └── Syntax/
    │           ├── JsonArray.cs
    │           ├── JsonBoolean.cs
    │           ├── JsonMember.cs
    │           ├── JsonNull.cs
    │           ├── JsonNumber.cs
    │           ├── JsonObject.cs
    │           ├── JsonString.cs
    │           ├── JsonSyntax.cs
    │           └── JsonSyntaxVisitor.cs
    ├── Spectre.Console/
    │   ├── AnsiConsole.Exceptions.cs
    │   ├── AnsiConsole.Live.cs
    │   ├── AnsiConsole.Markup.cs
    │   ├── AnsiConsole.Progress.cs
    │   ├── AnsiConsole.Prompt.cs
    │   ├── AnsiConsole.Recording.cs
    │   ├── AnsiConsole.Screen.cs
    │   ├── AnsiConsole.State.cs
    │   ├── AnsiConsole.Write.cs
    │   ├── AnsiConsole.WriteLine.cs
    │   ├── AnsiConsole.cs
    │   ├── AnsiConsoleFactory.cs
    │   ├── AnsiConsoleOutput.cs
    │   ├── AnsiConsoleSettings.cs
    │   ├── BoxBorder.Known.cs
    │   ├── BoxBorder.cs
    │   ├── Capabilities.cs
    │   ├── CircularBuffer.cs
    │   ├── CursorDirection.cs
    │   ├── Data/
    │   │   ├── emoji.json
    │   │   ├── spinners_default.json
    │   │   └── spinners_sindresorhus.json
    │   ├── Emoji.cs
    │   ├── Enrichment/
    │   │   ├── CI/
    │   │   │   ├── AppVeyorEnricher.cs
    │   │   │   ├── AzurePipelinesEnricher.cs
    │   │   │   ├── BambooEnricher.cs
    │   │   │   ├── BitbucketEnricher.cs
    │   │   │   ├── BitriseEnricher.cs
    │   │   │   ├── ContinuaEnricher.cs
    │   │   │   ├── GitHubEnricher.cs
    │   │   │   ├── GitLabEnricher.cs
    │   │   │   ├── GoCDEnricher.cs
    │   │   │   ├── JenkinsEnricher.cs
    │   │   │   ├── MyGetEnricher.cs
    │   │   │   ├── TeamCityEnricher.cs
    │   │   │   ├── TfsEnricher.cs
    │   │   │   └── TravisEnricher.cs
    │   │   ├── ProfileEnricher.cs
    │   │   └── ProfileEnrichment.cs
    │   ├── Extensions/
    │   │   ├── AnsiConsoleExtensions.Ansi.cs
    │   │   ├── AnsiConsoleExtensions.Async.cs
    │   │   ├── AnsiConsoleExtensions.Exceptions.cs
    │   │   ├── AnsiConsoleExtensions.Exclusive.cs
    │   │   ├── AnsiConsoleExtensions.Input.cs
    │   │   ├── AnsiConsoleExtensions.Live.cs
    │   │   ├── AnsiConsoleExtensions.Markup.cs
    │   │   ├── AnsiConsoleExtensions.Progress.cs
    │   │   ├── AnsiConsoleExtensions.Prompt.cs
    │   │   ├── AnsiConsoleExtensions.Recording.cs
    │   │   ├── AnsiConsoleExtensions.Screen.cs
    │   │   ├── AnsiConsoleExtensions.Write.cs
    │   │   ├── AnsiConsoleExtensions.WriteLine.cs
    │   │   ├── AnsiConsoleExtensions.cs
    │   │   ├── AnsiWriterExtensions.cs
    │   │   └── Bcl/
    │   │       ├── CharExtensions.cs
    │   │       ├── DayOfWeekExtensions.cs
    │   │       ├── DictionaryExtensions.cs
    │   │       ├── EnumerableExtensions.cs
    │   │       ├── ExceptionExtensions.cs
    │   │       ├── Int32Extensions.cs
    │   │       ├── ListExtensions.cs
    │   │       ├── StackExtensions.cs
    │   │       ├── StringBuilderExtensions.cs
    │   │       ├── StringExtensions.cs
    │   │       └── TextWriterExtensions.cs
    │   ├── Generated/
    │   │   ├── Backport.System.Threading.Lock.SourceGenerator/
    │   │   │   └── Backport.System.Threading.Lock.SourceGenerator.Generator/
    │   │   │       ├── Backport.System.Threading.Lock.SourceGenerator.AssemblyInfo.cs
    │   │   │       ├── Backport.System.Threading.Lock.SourceGenerator.Lock.cs
    │   │   │       ├── Backport.System.Threading.Lock.SourceGenerator.LockFactory.cs
    │   │   │       └── Backport.System.Threading.Lock.SourceGenerator.ThreadAbortableLock.cs
    │   │   └── Spectre.Console.SourceGenerator/
    │   │       ├── Spectre.Console.SourceGenerator.Colors.ColorGenerator/
    │   │       │   ├── Color.Generated.g.cs
    │   │       │   ├── ColorPalette.Generated.g.cs
    │   │       │   └── ColorTable.Generated.g.cs
    │   │       ├── Spectre.Console.SourceGenerator.Emojis.EmojiGenerator/
    │   │       │   └── Emoji.Generated.g.cs
    │   │       └── Spectre.Console.SourceGenerator.Spinners.SpinnerGenerator/
    │   │           └── Spinner.Generated.g.cs
    │   ├── HorizontalAlignment.cs
    │   ├── IAlignable.cs
    │   ├── IAnsiConsole.cs
    │   ├── IAnsiConsoleCursor.cs
    │   ├── IAnsiConsoleInput.cs
    │   ├── IAnsiConsoleOutput.cs
    │   ├── IColumn.cs
    │   ├── IExclusivityMode.cs
    │   ├── IExpandable.cs
    │   ├── IHasBorder.cs
    │   ├── IHasBoxBorder.cs
    │   ├── IHasCulture.cs
    │   ├── IHasJustification.cs
    │   ├── IHasTableBorder.cs
    │   ├── IHasTreeNodes.cs
    │   ├── IHasVisibility.cs
    │   ├── IOverflowable.cs
    │   ├── IPaddable.cs
    │   ├── IProfileEnricher.cs
    │   ├── IReadOnlyCapabilities.cs
    │   ├── InteractionDetector.cs
    │   ├── InteractionSupport.cs
    │   ├── Internal/
    │   │   ├── Aligner.cs
    │   │   ├── Backends/
    │   │   │   ├── Ansi/
    │   │   │   │   ├── AnsiConsoleBackend.cs
    │   │   │   │   ├── AnsiConsoleCursor.cs
    │   │   │   │   └── AnsiStringWriter.cs
    │   │   │   ├── AnsiConsoleFacade.cs
    │   │   │   ├── IAnsiConsoleBackend.cs
    │   │   │   └── Legacy/
    │   │   │       ├── LegacyConsoleBackend.cs
    │   │   │       └── LegacyConsoleCursor.cs
    │   │   ├── Cell.cs
    │   │   ├── Collections/
    │   │   │   └── ListWithCallback.cs
    │   │   ├── ConsoleHelper.cs
    │   │   ├── Constants.cs
    │   │   ├── DecorationTable.cs
    │   │   ├── DefaultExclusivityMode.cs
    │   │   ├── DefaultInput.cs
    │   │   ├── FileSize.cs
    │   │   ├── FileSizeBase.cs
    │   │   ├── FileSizePrefix.cs
    │   │   ├── IRatioResolvable.cs
    │   │   ├── Polyfill/
    │   │   │   ├── CancellationToken.cs
    │   │   │   └── EnumHelpers.cs
    │   │   ├── Ratio.cs
    │   │   ├── ResourceReader.cs
    │   │   ├── Text/
    │   │   │   ├── Encoding/
    │   │   │   │   ├── EncoderCapabilities.cs
    │   │   │   │   ├── HtmlEncoder.cs
    │   │   │   │   └── TextEncoder.cs
    │   │   │   ├── StringBuffer.cs
    │   │   │   └── WhiteSpaceSegmentEnumerator.cs
    │   │   └── TypeConverterHelper.cs
    │   ├── Justify.cs
    │   ├── Live/
    │   │   ├── LiveDisplay.cs
    │   │   ├── LiveDisplayContext.cs
    │   │   ├── LiveDisplayRenderer.cs
    │   │   ├── LiveRenderable.cs
    │   │   ├── Progress/
    │   │   │   ├── Columns/
    │   │   │   │   ├── DownloadedColumn.cs
    │   │   │   │   ├── ElapsedTimeColumn.cs
    │   │   │   │   ├── PercentageColumn.cs
    │   │   │   │   ├── ProgressBarColumn.cs
    │   │   │   │   ├── RemainingTimeColumn.cs
    │   │   │   │   ├── SpinnerColumn.cs
    │   │   │   │   ├── TaskDescriptionColumn.cs
    │   │   │   │   └── TransferSpeedColumn.cs
    │   │   │   ├── Progress.cs
    │   │   │   ├── ProgressColumn.cs
    │   │   │   ├── ProgressContext.cs
    │   │   │   ├── ProgressRefreshThread.cs
    │   │   │   ├── ProgressRenderer.cs
    │   │   │   ├── ProgressSample.cs
    │   │   │   ├── ProgressTask.cs
    │   │   │   ├── ProgressTaskSettings.cs
    │   │   │   ├── ProgressTaskState.cs
    │   │   │   ├── Renderers/
    │   │   │   │   ├── DefaultProgressRenderer.cs
    │   │   │   │   ├── FallbackProgressRenderer.cs
    │   │   │   │   └── FallbackStatusRenderer.cs
    │   │   │   └── Spinner.cs
    │   │   └── Status/
    │   │       ├── Status.cs
    │   │       └── StatusContext.cs
    │   ├── Overflow.cs
    │   ├── Padding.cs
    │   ├── Profile.cs
    │   ├── Prompts/
    │   │   ├── ConfirmationPrompt.cs
    │   │   ├── DefaultPromptValue.cs
    │   │   ├── IMultiSelectionItem.cs
    │   │   ├── IPrompt.cs
    │   │   ├── ISelectionItem.cs
    │   │   ├── List/
    │   │   │   ├── IListPromptStrategy.cs
    │   │   │   ├── ListPrompt.cs
    │   │   │   ├── ListPromptConstants.cs
    │   │   │   ├── ListPromptInputResult.cs
    │   │   │   ├── ListPromptItem.cs
    │   │   │   ├── ListPromptRenderHook.cs
    │   │   │   ├── ListPromptState.cs
    │   │   │   └── ListPromptTree.cs
    │   │   ├── MultiSelectionPrompt.cs
    │   │   ├── MultiSelectionPromptExtensions.cs
    │   │   ├── SelectionPrompt.cs
    │   │   ├── SelectionPromptExtensions.cs
    │   │   ├── SelectionType.cs
    │   │   ├── TextPrompt.cs
    │   │   └── TextPromptExtensions.cs
    │   ├── Properties/
    │   │   └── Usings.cs
    │   ├── Recorder.cs
    │   ├── Region.cs
    │   ├── Rendering/
    │   │   ├── Borders/
    │   │   │   ├── BoxBorderPart.cs
    │   │   │   ├── Boxes/
    │   │   │   │   ├── AsciiBoxBorder.cs
    │   │   │   │   ├── DoubleBoxBorder.cs
    │   │   │   │   ├── HeavyBoxBorder.cs
    │   │   │   │   ├── NoBoxBorder.cs
    │   │   │   │   ├── RoundedBoxBorder.cs
    │   │   │   │   └── SquareBoxBorder.cs
    │   │   │   ├── TableBorderPart.cs
    │   │   │   └── Tables/
    │   │   │       ├── Ascii2TableBorder.cs
    │   │   │       ├── AsciiDoubleHeadTableBorder.cs
    │   │   │       ├── AsciiTableBorder.cs
    │   │   │       ├── DoubleEdgeTableBorder.cs
    │   │   │       ├── DoubleTableBorder.cs
    │   │   │       ├── HeavyEdgeTableBorder.cs
    │   │   │       ├── HeavyHeadTableBorder.cs
    │   │   │       ├── HeavyTableBorder.cs
    │   │   │       ├── HorizontalTableBorder.cs
    │   │   │       ├── MarkdownTableBorder.cs
    │   │   │       ├── MinimalDoubleHeadTableBorder.cs
    │   │   │       ├── MinimalHeavyHeadTableBorder.cs
    │   │   │       ├── MinimalTableBorder.cs
    │   │   │       ├── MinimalistTableBorder.cs
    │   │   │       ├── NoTableBorder.cs
    │   │   │       ├── RoundedTableBorder.cs
    │   │   │       ├── SimpleHeavyTableBorder.cs
    │   │   │       ├── SimpleTableBorder.cs
    │   │   │       └── SquareTableBorder.cs
    │   │   ├── IAnsiConsoleEncoder.cs
    │   │   ├── IHasDirtyState.cs
    │   │   ├── IRenderHook.cs
    │   │   ├── IRenderable.cs
    │   │   ├── JustInTimeRenderable.cs
    │   │   ├── Measurement.cs
    │   │   ├── RenderHookScope.cs
    │   │   ├── RenderOptions.cs
    │   │   ├── RenderPipeline.cs
    │   │   ├── Renderable.cs
    │   │   ├── Segment.cs
    │   │   ├── SegmentLine.cs
    │   │   ├── SegmentLineEnumerator.cs
    │   │   ├── SegmentLineIterator.cs
    │   │   ├── SegmentShape.cs
    │   │   ├── TablePart.cs
    │   │   ├── Tree/
    │   │   │   ├── AsciiTreeGuide.cs
    │   │   │   ├── BoldLineTreeGuide.cs
    │   │   │   ├── DoubleLineTreeGuide.cs
    │   │   │   └── LineTreeGuide.cs
    │   │   └── TreeGuidePart.cs
    │   ├── Size.cs
    │   ├── Spectre.Console.csproj
    │   ├── TableBorder.Known.cs
    │   ├── TableBorder.cs
    │   ├── TreeGuide.Known.cs
    │   ├── TreeGuide.cs
    │   ├── ValidationResult.cs
    │   ├── VerticalAlignment.cs
    │   ├── VerticalOverflow.cs
    │   ├── VerticalOverflowCropping.cs
    │   └── Widgets/
    │       ├── Align.cs
    │       ├── Calendar.cs
    │       ├── CalendarEvent.cs
    │       ├── Canvas.cs
    │       ├── Charts/
    │       │   ├── BarChart.cs
    │       │   ├── BarChartItem.cs
    │       │   ├── BreakdownBar.cs
    │       │   ├── BreakdownChart.cs
    │       │   ├── BreakdownChartItem.cs
    │       │   ├── BreakdownTags.cs
    │       │   ├── IBarChartItem.cs
    │       │   └── IBreakdownChartItem.cs
    │       ├── CircularTreeException.cs
    │       ├── Columns.cs
    │       ├── ControlCode.cs
    │       ├── Exceptions/
    │       │   ├── ExceptionFormat.cs
    │       │   ├── ExceptionFormatter.cs
    │       │   ├── ExceptionSettings.cs
    │       │   ├── ExceptionStyle.cs
    │       │   ├── StringUriExtensions.cs
    │       │   └── TypeNameHelper.cs
    │       ├── Figlet/
    │       │   ├── FigletCharacter.cs
    │       │   ├── FigletFont.cs
    │       │   ├── FigletFontParser.cs
    │       │   ├── FigletHeader.cs
    │       │   ├── FigletText.cs
    │       │   └── Fonts/
    │       │       └── Standard.flf
    │       ├── Grid.cs
    │       ├── GridColumn.cs
    │       ├── GridRow.cs
    │       ├── Layout/
    │       │   ├── Layout.cs
    │       │   ├── LayoutPlaceholder.cs
    │       │   ├── LayoutRender.cs
    │       │   └── LayoutSplitter.cs
    │       ├── Markup.cs
    │       ├── Padder.cs
    │       ├── Panel.cs
    │       ├── PanelHeader.cs
    │       ├── Paragraph.cs
    │       ├── ProgressBar.cs
    │       ├── Rows.cs
    │       ├── Rule.cs
    │       ├── Table/
    │       │   ├── Table.cs
    │       │   ├── TableAccessor.cs
    │       │   ├── TableCell.cs
    │       │   ├── TableColumn.cs
    │       │   ├── TableMeasurer.cs
    │       │   ├── TableRenderer.cs
    │       │   ├── TableRendererContext.cs
    │       │   ├── TableRow.cs
    │       │   ├── TableRowCollection.cs
    │       │   ├── TableRowEnumerator.cs
    │       │   └── TableTitle.cs
    │       ├── Text.cs
    │       ├── TextPath.cs
    │       ├── Tree.cs
    │       └── TreeNode.cs
    ├── Spectre.Console.Ansi/
    │   ├── AnsiCapabilities.cs
    │   ├── AnsiDetector.cs
    │   ├── AnsiMarkup.cs
    │   ├── AnsiMarkupHighlighter.cs
    │   ├── AnsiMarkupTagParser.cs
    │   ├── AnsiSupport.cs
    │   ├── AnsiWriter.cs
    │   ├── AnsiWriterSettings.cs
    │   ├── Color.cs
    │   ├── ColorPalette.cs
    │   ├── ColorSystem.cs
    │   ├── ColorSystemDetector.cs
    │   ├── ColorSystemSupport.cs
    │   ├── ColorTable.cs
    │   ├── Constants.cs
    │   ├── Data/
    │   │   └── colors.json
    │   ├── Decoration.cs
    │   ├── DecorationTable.cs
    │   ├── Generated/
    │   │   ├── Backport.System.Threading.Lock.SourceGenerator/
    │   │   │   └── Backport.System.Threading.Lock.SourceGenerator.Generator/
    │   │   │       ├── Backport.System.Threading.Lock.SourceGenerator.AssemblyInfo.cs
    │   │   │       ├── Backport.System.Threading.Lock.SourceGenerator.Lock.cs
    │   │   │       ├── Backport.System.Threading.Lock.SourceGenerator.LockFactory.cs
    │   │   │       └── Backport.System.Threading.Lock.SourceGenerator.ThreadAbortableLock.cs
    │   │   └── Spectre.Console.SourceGenerator/
    │   │       └── Spectre.Console.SourceGenerator.Colors.ColorGenerator/
    │   │           ├── Color.Generated.g.cs
    │   │           ├── ColorPalette.Generated.g.cs
    │   │           └── ColorTable.Generated.g.cs
    │   ├── Link.cs
    │   ├── Properties/
    │   │   └── Usings.cs
    │   ├── Spectre.Console.Ansi.csproj
    │   ├── Style.cs
    │   └── Utilities/
    │       ├── ConsoleExtensions.cs
    │       ├── EnumHelpers.cs
    │       ├── EnumerableExtensions.cs
    │       ├── StringBuffer.cs
    │       ├── StringExtensions.cs
    │       └── TextWriterExtensions.cs
    ├── Spectre.Console.Ansi.Tests/
    │   ├── AnsiMarkupTests.cs
    │   ├── AnsiWriterTests.cs
    │   ├── ColorSystemTests.cs
    │   ├── ColorTests.cs
    │   ├── Fixtures/
    │   │   └── AnsiFixture.cs
    │   ├── Properties/
    │   │   └── Usings.cs
    │   ├── Spectre.Console.Ansi.Tests.csproj
    │   └── StyleTests.cs
    ├── Spectre.Console.SourceGenerator/
    │   ├── Colors/
    │   │   ├── ColorEmitter.cs
    │   │   ├── ColorGenerator.cs
    │   │   └── ColorModel.cs
    │   ├── Emojis/
    │   │   ├── EmojiEmitter.cs
    │   │   ├── EmojiGenerator.cs
    │   │   └── EmojiModel.cs
    │   ├── EquatableArray.cs
    │   ├── Spectre.Console.SourceGenerator.csproj
    │   └── Spinners/
    │       ├── SpinnerEmitter.cs
    │       ├── SpinnerGenerator.cs
    │       └── SpinnerModel.cs
    ├── Spectre.Console.Testing/
    │   ├── .editorconfig
    │   ├── Extensions/
    │   │   ├── ShouldlyExtensions.cs
    │   │   ├── StringExtensions.cs
    │   │   ├── StyleExtensions.cs
    │   │   └── TestConsoleExtensions.cs
    │   ├── Internal/
    │   │   ├── NoopCursor.cs
    │   │   └── NoopExclusivityMode.cs
    │   ├── Properties/
    │   │   └── Usings.cs
    │   ├── Spectre.Console.Testing.csproj
    │   ├── TestCapabilities.cs
    │   ├── TestConsole.cs
    │   └── TestConsoleInput.cs
    ├── Spectre.Console.Tests/
    │   ├── Data/
    │   │   ├── Exceptions.cs
    │   │   ├── example.json
    │   │   ├── poison.flf
    │   │   └── starwars.flf
    │   ├── Expectations/
    │   │   ├── AlternateScreen/
    │   │   │   └── Show.Output.verified.txt
    │   │   ├── Cli/
    │   │   │   ├── Arguments/
    │   │   │   │   ├── ArgumentCannotContainOptions.Output.verified.txt
    │   │   │   │   ├── InvalidCharacterInOptionName.Output.verified.txt
    │   │   │   │   ├── InvalidCharacterInValueName.Output.verified.txt
    │   │   │   │   ├── LongOptionMustHaveMoreThanOneCharacter.Output.verified.txt
    │   │   │   │   ├── MissingLongAndShortName.Output.verified.txt
    │   │   │   │   ├── MultipleOptionValuesAreNotSupported.Output.verified.txt
    │   │   │   │   ├── MultipleValuesAreNotSupported.Output.verified.txt
    │   │   │   │   ├── OptionNamesCannotStartWithDigit.Output.verified.txt
    │   │   │   │   ├── OptionsMustHaveName.Output.verified.txt
    │   │   │   │   ├── ShortOptionMustOnlyBeOneCharacter.Output.verified.txt
    │   │   │   │   ├── UnexpectedCharacter.Output.verified.txt
    │   │   │   │   ├── UnterminatedValueName.Output.verified.txt
    │   │   │   │   └── ValuesMustHaveName.Output.verified.txt
    │   │   │   ├── Help/
    │   │   │   │   ├── ArgumentOrder.Output.verified.txt
    │   │   │   │   ├── Command.Output.verified.txt
    │   │   │   │   ├── CommandExamples.Output.verified.txt
    │   │   │   │   ├── Default.Output.verified.txt
    │   │   │   │   ├── DefaultExamples.Output.verified.txt
    │   │   │   │   ├── Hidden_Command_Options.Output.verified.txt
    │   │   │   │   ├── Hidden_Commands.Output.verified.txt
    │   │   │   │   ├── Leaf.Output.verified.txt
    │   │   │   │   ├── NoDescription.Output.verified.txt
    │   │   │   │   ├── Root.Output.verified.txt
    │   │   │   │   ├── RootExamples.Output.verified.txt
    │   │   │   │   ├── RootExamples_Children.Output.verified.txt
    │   │   │   │   └── RootExamples_Leafs.Output.verified.txt
    │   │   │   ├── Parsing/
    │   │   │   │   ├── CannotAssignValueToFlag/
    │   │   │   │   │   ├── Test_1.Output.verified.txt
    │   │   │   │   │   └── Test_2.Output.verified.txt
    │   │   │   │   ├── InvalidShortOptionName/
    │   │   │   │   │   └── Test_1.Output.verified.txt
    │   │   │   │   ├── LongOptionNameContainSymbol/
    │   │   │   │   │   └── Test_1.Output.verified.txt
    │   │   │   │   ├── LongOptionNameIsMissing/
    │   │   │   │   │   └── Test_1.Output.verified.txt
    │   │   │   │   ├── LongOptionNameIsOneCharacter/
    │   │   │   │   │   └── Test_1.Output.verified.txt
    │   │   │   │   ├── LongOptionNameStartWithDigit/
    │   │   │   │   │   └── Test_1.Output.verified.txt
    │   │   │   │   ├── NoMatchingArgument/
    │   │   │   │   │   └── Test_1.Output.verified.txt
    │   │   │   │   ├── NoValueForOption/
    │   │   │   │   │   ├── Test_1.Output.verified.txt
    │   │   │   │   │   └── Test_2.Output.verified.txt
    │   │   │   │   ├── OptionWithoutName/
    │   │   │   │   │   ├── Test_1.Output.verified.txt
    │   │   │   │   │   ├── Test_2.Output.verified.txt
    │   │   │   │   │   ├── Test_3.Output.verified.txt
    │   │   │   │   │   ├── Test_4.Output.verified.txt
    │   │   │   │   │   └── Test_5.Output.verified.txt
    │   │   │   │   ├── UnexpectedOption/
    │   │   │   │   │   ├── Test_1.Output.verified.txt
    │   │   │   │   │   └── Test_2.Output.verified.txt
    │   │   │   │   ├── UnknownCommand/
    │   │   │   │   │   ├── Test_1.Output.verified.txt
    │   │   │   │   │   ├── Test_2.Output.verified.txt
    │   │   │   │   │   ├── Test_3.Output.verified.txt
    │   │   │   │   │   ├── Test_4.Output.verified.txt
    │   │   │   │   │   ├── Test_5.Output.verified.txt
    │   │   │   │   │   ├── Test_6.Output.verified.txt
    │   │   │   │   │   ├── Test_7.Output.verified.txt
    │   │   │   │   │   └── Test_8.Output.verified.txt
    │   │   │   │   └── UnknownOption/
    │   │   │   │       ├── Test_1.Output.verified.txt
    │   │   │   │       └── Test_2.Output.verified.txt
    │   │   │   └── Xml/
    │   │   │       ├── Hidden_Command_Options.Output.verified.txt
    │   │   │       ├── Test_1.Output.verified.txt
    │   │   │       ├── Test_2.Output.verified.txt
    │   │   │       ├── Test_3.Output.verified.txt
    │   │   │       ├── Test_4.Output.verified.txt
    │   │   │       ├── Test_5.Output.verified.txt
    │   │   │       └── Test_6.Output.verified.txt
    │   │   ├── Exception/
    │   │   │   ├── CallSite.Output.verified.txt
    │   │   │   ├── Default.Output.verified.txt
    │   │   │   ├── GenericException.Output_exceptionFormats=Default.verified.txt
    │   │   │   ├── GenericException.Output_exceptionFormats=ShortenEverything.verified.txt
    │   │   │   ├── GenericException.Output_exceptionFormats=ShortenMethods.verified.txt
    │   │   │   ├── GenericException.Output_exceptionFormats=ShortenTypes.verified.txt
    │   │   │   ├── InnerException.Output.verified.txt
    │   │   │   ├── NoStackTrace.Output.verified.txt
    │   │   │   ├── OutParam.Output.verified.txt
    │   │   │   ├── ShortenedMethods.Output.verified.txt
    │   │   │   ├── ShortenedTypes.Output.verified.txt
    │   │   │   └── Tuple.Output.verified.txt
    │   │   ├── Live/
    │   │   │   ├── Progress/
    │   │   │   │   └── Render_ReduceWidth.Output.verified.txt
    │   │   │   └── Status/
    │   │   │       └── Render.Output.verified.txt
    │   │   ├── Prompts/
    │   │   │   └── Text/
    │   │   │       ├── AcceptChoice.Output.verified.txt
    │   │   │       ├── AutoComplete_BestMatch.Output.verified.txt
    │   │   │       ├── AutoComplete_Empty.Output.verified.txt
    │   │   │       ├── AutoComplete_NextChoice.Output.verified.txt
    │   │   │       ├── AutoComplete_PreviousChoice.Output.verified.txt
    │   │   │       ├── ChoicesStyleNotSet.Output.verified.txt
    │   │   │       ├── ChoicesStyleSet.Output.verified.txt
    │   │   │       ├── ClearOnFinish.Output.verified.txt
    │   │   │       ├── ConversionError.Output.verified.txt
    │   │   │       ├── CustomConverter.Output.verified.txt
    │   │   │       ├── CustomValidation.Output.verified.txt
    │   │   │       ├── DefaultValue.Output.verified.txt
    │   │   │       ├── DefaultValueStyleNotSet.Output.verified.txt
    │   │   │       ├── DefaultValueStyleSet.Output.verified.txt
    │   │   │       ├── InvalidChoice.Output.verified.txt
    │   │   │       ├── InvalidDefaultChoice.Output.verified.txt
    │   │   │       ├── NoSuffix.Output.verified.txt
    │   │   │       ├── SecretDefaultValue.Output.verified.txt
    │   │   │       ├── SecretDefaultValueCustomMask.Output.verified.txt
    │   │   │       ├── SecretDefaultValueNullMask.Output.verified.txt
    │   │   │       └── SecretValueBackspaceNullMask.Output.verified.txt
    │   │   ├── Rendering/
    │   │   │   └── Borders/
    │   │   │       ├── Box/
    │   │   │       │   ├── AsciiBorder.Output.verified.txt
    │   │   │       │   ├── DoubleBorder.Output.verified.txt
    │   │   │       │   ├── HeavyBorder.Output.verified.txt
    │   │   │       │   ├── NoBorder.Output.verified.txt
    │   │   │       │   ├── NoBorder_With_Header.Output.verified.txt
    │   │   │       │   ├── RoundedBorder.Output.verified.txt
    │   │   │       │   └── SquareBorder.Output.verified.txt
    │   │   │       └── Table/
    │   │   │           ├── Ascii2Border.Output.verified.txt
    │   │   │           ├── AsciiBorder.Output.verified.txt
    │   │   │           ├── AsciiDoubleHeadBorder.Output.verified.txt
    │   │   │           ├── DoubleBorder.Output.verified.txt
    │   │   │           ├── DoubleEdgeBorder.Output.verified.txt
    │   │   │           ├── HeavyBorder.Output.verified.txt
    │   │   │           ├── HeavyEdgeBorder.Output.verified.txt
    │   │   │           ├── HeavyHeadBorder.Output.verified.txt
    │   │   │           ├── HorizontalBorder.Output.verified.txt
    │   │   │           ├── MarkdownBorder.Output.verified.txt
    │   │   │           ├── MarkdownBorder_Centered.Output.verified.txt
    │   │   │           ├── MarkdownBorder_LeftAligned.Output.verified.txt
    │   │   │           ├── MarkdownBorder_RightAligned.Output.verified.txt
    │   │   │           ├── MinimalBorder.Output.verified.txt
    │   │   │           ├── MinimalDoubleHeadBorder.Output.verified.txt
    │   │   │           ├── MinimalHeavyHeadBorder.Output.verified.txt
    │   │   │           ├── MinimalistBorder.Output.verified.txt
    │   │   │           ├── NoBorder.Output.verified.txt
    │   │   │           ├── RoundedBorder.Output.verified.txt
    │   │   │           ├── SimpleBorder.Output.verified.txt
    │   │   │           ├── SimpleHeavyBorder.Output.verified.txt
    │   │   │           └── SquareBorder.Output.verified.txt
    │   │   ├── TableRowCollectionTests.TheUpdateMethod.Should_Update_Row.verified.txt
    │   │   ├── TableRowCollectionTests.TheUpdateMethod.Should_Update_Row_With_Renderable.verified.txt
    │   │   ├── TableRowCollectionTests.TheUpdateMethod.Should_Update_Row_With_String.verified.txt
    │   │   └── Widgets/
    │   │       ├── Align/
    │   │       │   ├── Center_Bottom.Output.verified.txt
    │   │       │   ├── Center_Middle.Output.verified.txt
    │   │       │   ├── Center_Top.Output.verified.txt
    │   │       │   ├── Left_Bottom.Output.verified.txt
    │   │       │   ├── Left_Middle.Output.verified.txt
    │   │       │   ├── Left_Top.Output.verified.txt
    │   │       │   ├── Right_Bottom.Output.verified.txt
    │   │       │   ├── Right_Middle.Output.verified.txt
    │   │       │   └── Right_Top.Output.verified.txt
    │   │       ├── BarChart/
    │   │       │   ├── Fixed_Max_Value.Output.verified.txt
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   └── Zero_Value.Output.verified.txt
    │   │       ├── BreakdownChart/
    │   │       │   ├── Ansi.Output.verified.txt
    │   │       │   ├── Culture.Output.verified.txt
    │   │       │   ├── Default.Output.verified.txt
    │   │       │   ├── FullSize.Output.verified.txt
    │   │       │   ├── HideTagValues.Output.verified.txt
    │   │       │   ├── HideTags.Output.verified.txt
    │   │       │   ├── TagFormat.Output.verified.txt
    │   │       │   ├── ValueColor.Output.verified.txt
    │   │       │   └── Width.Output.verified.txt
    │   │       ├── Calendar/
    │   │       │   ├── Centered.Output.verified.txt
    │   │       │   ├── Culture.Output.verified.txt
    │   │       │   ├── LeftAligned.Output.verified.txt
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   └── RightAligned.Output.verified.txt
    │   │       ├── Canvas/
    │   │       │   ├── Render.NonUnicode.verified.txt
    │   │       │   ├── Render.Unicode.verified.txt
    │   │       │   ├── Render_MaxWidth.NonUnicode.verified.txt
    │   │       │   ├── Render_MaxWidth.Unicode.verified.txt
    │   │       │   ├── Render_NarrowTerminal.NonUnicode.verified.txt
    │   │       │   ├── Render_NarrowTerminal.Unicode.verified.txt
    │   │       │   ├── Render_Nested.NonUnicode.verified.txt
    │   │       │   └── Render_Nested.Unicode.verified.txt
    │   │       ├── Columns/
    │   │       │   └── Render.Output.verified.txt
    │   │       ├── Figlet/
    │   │       │   ├── Load_Stream.Output_fontfile=poison.flf.verified.txt
    │   │       │   ├── Load_Stream.Output_fontfile=starwars.flf.verified.txt
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   ├── Render_Centered.Output.verified.txt
    │   │       │   ├── Render_LeftAligned.Output.verified.txt
    │   │       │   ├── Render_RightAligned.Output.verified.txt
    │   │       │   └── Render_Wrapped.Output.verified.txt
    │   │       ├── Grid/
    │   │       │   ├── AddEmptyRow/
    │   │       │   │   └── Render.Output.verified.txt
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   ├── Render_2.Output.verified.txt
    │   │       │   ├── Render_Alignment.Output.verified.txt
    │   │       │   ├── Render_Cell_Markup_Overflow.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_Crop.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_Ellipsis.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_Fold.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_With_NoWrap.Output.verified.txt
    │   │       │   ├── Render_ExplicitPadding.Output.verified.txt
    │   │       │   └── Render_Padding.Output.verified.txt
    │   │       ├── Json/
    │   │       │   ├── Render_Compact_Json.Output.verified.txt
    │   │       │   └── Render_Json.Output.verified.txt
    │   │       ├── Layout/
    │   │       │   ├── Render_Empty_Layout.Output.verified.txt
    │   │       │   ├── Render_Fallback_Layout.Output.verified.txt
    │   │       │   ├── Render_Layout.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Columns.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Columns.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Rows.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Rows_And_Columns.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Three_Rows_In_One_Column.Output_17.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Three_Rows_In_One_Column.Output_20.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Three_Rows_In_One_Column.Output_23.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Three_Rows_In_One_Column.Output_28.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Three_Rows_In_One_Column.Output_30.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Three_Rows_In_One_Column.Output_31.verified.txt
    │   │       │   ├── Render_Layout_With_Respect_To_Minimum_Size.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Respect_To_Ratio.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Respect_To_Size.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Rows.Output.verified.txt
    │   │       │   └── Render_Layout_Without_Invisible_Children.Output.verified.txt
    │   │       ├── Padder/
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   ├── Render_Expanded.Output.verified.txt
    │   │       │   └── Render_Nested.Output.verified.txt
    │   │       ├── Panel/
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   ├── Render_CJK.Output.verified.txt
    │   │       │   ├── Render_Child_Centered.Output.verified.txt
    │   │       │   ├── Render_Child_Panel.Output.verified.txt
    │   │       │   ├── Render_Child_RightAligned.Output.verified.txt
    │   │       │   ├── Render_Expand.Output.verified.txt
    │   │       │   ├── Render_Header.Output.verified.txt
    │   │       │   ├── Render_Header_Centered.Output.verified.txt
    │   │       │   ├── Render_Header_Collapse.Output.verified.txt
    │   │       │   ├── Render_Header_LeftAligned.Output.verified.txt
    │   │       │   ├── Render_Header_RightAligned.Output.verified.txt
    │   │       │   ├── Render_Height.Output.verified.txt
    │   │       │   ├── Render_LineEndings.Output.verified.txt
    │   │       │   ├── Render_Markup_Overflow_Ellipsis.Output.verified.txt
    │   │       │   ├── Render_Multiline.Output.verified.txt
    │   │       │   ├── Render_Nested_Panel_With_Overflow.Output.verified.txt
    │   │       │   ├── Render_Padding.Output.verified.txt
    │   │       │   ├── Render_Text_Overflow_Crop.Output.verified.txt
    │   │       │   ├── Render_Text_Overflow_Ellipsis.Output.verified.txt
    │   │       │   ├── Render_Text_Overflow_Fold.Output.verified.txt
    │   │       │   ├── Render_Text_Overflow_With_Padding.Output.verified.txt
    │   │       │   ├── Render_Unicode.Output.verified.txt
    │   │       │   ├── Render_Width.Output.verified.txt
    │   │       │   ├── Render_Width_Height.Output.verified.txt
    │   │       │   ├── Render_Width_MaxWidth.Output.verified.txt
    │   │       │   ├── Render_Wrap.Output.verified.txt
    │   │       │   └── Render_ZeroPadding.Output.verified.txt
    │   │       ├── ProgressBar/
    │   │       │   ├── Formatted.Output.verified.txt
    │   │       │   └── Render.Output.verified.txt
    │   │       ├── Recorder/
    │   │       │   ├── Html.Output.verified.txt
    │   │       │   └── Text.Output.verified.txt
    │   │       ├── Rows/
    │   │       │   ├── GH-1188-Rows.Output.verified.txt
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   ├── Render_Empty.Output.verified.txt
    │   │       │   ├── Render_Expanded_And_Nested.Output.verified.txt
    │   │       │   └── Render_Nested.Output.verified.txt
    │   │       ├── Rule/
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   ├── Render_Border_Header.Output.verified.txt
    │   │       │   ├── Render_Border_NoHeader.Output.verified.txt
    │   │       │   ├── Render_Header_DefaultAlignment.Output.verified.txt
    │   │       │   ├── Render_Header_LeftAligned.Output.verified.txt
    │   │       │   ├── Render_Header_RightAligned.Output.verified.txt
    │   │       │   ├── Render_Linebreaks.Output.verified.txt
    │   │       │   └── Render_Truncate.Output.verified.txt
    │   │       ├── Table/
    │   │       │   ├── AddEmptyRow.Output.verified.txt
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   ├── Render_CellPadding.Output.verified.txt
    │   │       │   ├── Render_Cell_Markup_Overflow.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_Crop.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_Ellipsis.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_Fold.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_Multiple_Rows.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_With_NoWrap.Output.verified.txt
    │   │       │   ├── Render_Centered.Align_Widget.verified.txt
    │   │       │   ├── Render_Centered.Output.verified.txt
    │   │       │   ├── Render_ColumnJustification.Output.verified.txt
    │   │       │   ├── Render_ColumnSpan_2.Output.verified.txt
    │   │       │   ├── Render_ColumnSpan_3.Output.verified.txt
    │   │       │   ├── Render_ColumnSpan_All.Output.verified.txt
    │   │       │   ├── Render_ColumnSpan_LeftAligned.Output.verified.txt
    │   │       │   ├── Render_ColumnSpan_Multiline.Output.verified.txt
    │   │       │   ├── Render_ColumnSpan_Multiple.Output.verified.txt
    │   │       │   ├── Render_ColumnSpan_NoBorder.Output.verified.txt
    │   │       │   ├── Render_EA_Character.Output.verified.txt
    │   │       │   ├── Render_Empty_Column.Output.verified.txt
    │   │       │   ├── Render_Expand.Output.verified.txt
    │   │       │   ├── Render_Fold.Output.verified.txt
    │   │       │   ├── Render_Footers.Output.verified.txt
    │   │       │   ├── Render_Impossible.Output.verified.txt
    │   │       │   ├── Render_LeftAligned.Align_Widget.verified.txt
    │   │       │   ├── Render_LeftAligned.Output.verified.txt
    │   │       │   ├── Render_Multiline.Output.verified.txt
    │   │       │   ├── Render_Nested.Output.verified.txt
    │   │       │   ├── Render_NoRows.Output.verified.txt
    │   │       │   ├── Render_RightAligned.Align_Widget.verified.txt
    │   │       │   ├── Render_RightAligned.Output.verified.txt
    │   │       │   ├── Render_Row_Separators.Output.verified.txt
    │   │       │   ├── Render_Row_Separators_No_Header.Output.verified.txt
    │   │       │   ├── Render_Title_Caption.Output.verified.txt
    │   │       │   ├── Render_Title_Caption_Centered.Output.verified.txt
    │   │       │   ├── Render_Title_Caption_LeftAligned.Output.verified.txt
    │   │       │   ├── Render_Title_Caption_LowerCase.Output.verified.txt
    │   │       │   ├── Render_Title_Caption_RightAligned.Output.verified.txt
    │   │       │   └── Rows/
    │   │       │       ├── Add.Output.verified.txt
    │   │       │       ├── Extensions/
    │   │       │       │   ├── Add.Renderables.verified.txt
    │   │       │       │   ├── Add.Strings.verified.txt
    │   │       │       │   ├── Insert.Renderables.verified.txt
    │   │       │       │   ├── Insert.Strings.verified.txt
    │   │       │       │   └── Remove.Output.verified.txt
    │   │       │       ├── Insert.Output.verified.txt
    │   │       │       └── Remove.Output.verified.txt
    │   │       ├── TextPath/
    │   │       │   └── GH-1307.Output.verified.txt
    │   │       └── Tree/
    │   │           ├── Render.Output.verified.txt
    │   │           └── Render_NoChildren.Output.verified.txt
    │   ├── Extensions/
    │   │   ├── ConsoleKeyExtensions.cs
    │   │   └── StreamExtensions.cs
    │   ├── Legacy/
    │   │   ├── Color.Generated.cs
    │   │   ├── Emoji.Generated.cs
    │   │   └── Spinner.Generated.cs
    │   ├── Properties/
    │   │   └── Usings.cs
    │   ├── Spectre.Console.Tests.csproj
    │   ├── Unit/
    │   │   ├── AlternateScreenTests.cs
    │   │   ├── AnsiConsoleTests.Ansi.cs
    │   │   ├── AnsiConsoleTests.Colors.cs
    │   │   ├── AnsiConsoleTests.Cursor.cs
    │   │   ├── AnsiConsoleTests.Markup.cs
    │   │   ├── AnsiConsoleTests.MarkupInterpolated.cs
    │   │   ├── AnsiConsoleTests.Prompt.cs
    │   │   ├── AnsiConsoleTests.Style.cs
    │   │   ├── AnsiConsoleTests.cs
    │   │   ├── AnsiDetectorTests.cs
    │   │   ├── BackwardsCompatibilityTests.cs
    │   │   ├── EmojiTests.cs
    │   │   ├── ExceptionTests.cs
    │   │   ├── InteractionDetectorTests.cs
    │   │   ├── Internal/
    │   │   │   ├── FileSizeTests.cs
    │   │   │   └── WhiteSpaceSegmentEnumeratorTests.cs
    │   │   ├── Live/
    │   │   │   ├── Progress/
    │   │   │   │   ├── DownloadedColumnTests.cs
    │   │   │   │   ├── ProgressColumnFixture.cs
    │   │   │   │   ├── ProgressTaskTests.cs
    │   │   │   │   └── ProgressTests.cs
    │   │   │   └── StatusTests.cs
    │   │   ├── Prompts/
    │   │   │   ├── ListPromptStateTests.cs
    │   │   │   ├── MultiSelectionPromptTests.cs
    │   │   │   ├── SelectionPromptTests.cs
    │   │   │   └── TextPromptTests.cs
    │   │   ├── RecorderTests.cs
    │   │   ├── Rendering/
    │   │   │   ├── Borders/
    │   │   │   │   ├── BoxBorderTests.cs
    │   │   │   │   └── TableBorderTests.cs
    │   │   │   ├── RenderHookTests.cs
    │   │   │   ├── SegmentShapeTests.cs
    │   │   │   └── SegmentTests.cs
    │   │   └── Widgets/
    │   │       ├── AlignTests.cs
    │   │       ├── BarChartTests.cs
    │   │       ├── BreakdownChartTests.cs
    │   │       ├── CalendarTests.cs
    │   │       ├── CanvasTests.cs
    │   │       ├── ColumnsTests.cs
    │   │       ├── FigletTests.cs
    │   │       ├── GridTests.cs
    │   │       ├── JsonTextTests.cs
    │   │       ├── LayoutTests.cs
    │   │       ├── MarkupTests.cs
    │   │       ├── PadderTests.cs
    │   │       ├── PanelTests.cs
    │   │       ├── ProgressBarTests.cs
    │   │       ├── RowsTests.cs
    │   │       ├── RuleTests.cs
    │   │       ├── Table/
    │   │       │   ├── TableRowCollectionExtensionsTests.cs
    │   │       │   ├── TableRowCollectionTests.cs
    │   │       │   └── TableTests.cs
    │   │       ├── TextPathTests.cs
    │   │       ├── TextTests.cs
    │   │       └── TreeTests.cs
    │   ├── Utilities/
    │   │   ├── EmbeddedResourceReader.cs
    │   │   ├── FakeTimeProvider.cs
    │   │   ├── GitHubIssueAttribute.cs
    │   │   ├── ModuleInitializerAttribute.cs
    │   │   └── TestConsoleExtensions.cs
    │   └── VerifyConfiguration.cs
    └── Spectre.Console.slnx

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
root = true

[*]
charset = utf-8
end_of_line = LF
indent_style = space
indent_size = 4
insert_final_newline = false
trim_trailing_whitespace = true

[*.{sln,slnx}]
indent_style = tab

[*.{csproj,vbproj,vcxproj,vcxproj.filters}]
indent_size = 2

[*.{xml,config,props,targets,nuspec,ruleset}]
indent_size = 2

[*.{yml,yaml}]
indent_size = 2

[*.json]
indent_size = 2

[*.md]
trim_trailing_whitespace = false

================================================
FILE: .git-blame-ignore-revs
================================================
# Use file scoped namespace declarations
7b2da0a4f63bf3ceab99d2c88535e74155f2b99c

# fix line-endings
e2ad4b1ea5555e701cda4fd400bb6592e318e1ff


================================================
FILE: .gitattributes
================================================
* text=auto

*.cs       text    eol=lf
*.md       text    eol=lf


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ["needs triage"]
type: ["bug"]
assignees: ''

---

**Information**
 - OS: [eg Windows/Linux/MacOS]
 - Version: [e.g. 0.33.0]
 - Terminal: [e.g Windows Terminal]

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Additional context**
Add any other context about the problem here.

---
Please upvote :+1: this issue if you are interested in it.

================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ["needs triage"]
type: ["feature"]
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.

---
Please upvote :+1: this issue if you are interested in it.

================================================
FILE: .github/pull_request_template.md
================================================
<!--
Do NOT open a PR without discussing the changes on an open issue, first.

Add the issue number here. e.g. #123
-->
Fixes #

<!-- Formalities. These are not optional. -->

- [ ] I have read the [Contribution Guidelines](https://github.com/spectreconsole/spectre.console/blob/main/CONTRIBUTING.md)
- [ ] I have checked that there isn't already another pull request that solves the above issue
- [ ] All newly added code is adequately covered by tests
- [ ] All existing tests are still running without errors

<!-- 
If you have used generative AI to create this pull request, you will need to disclose this here,
i.e. What AI agent you used and to what extent.
-->

## Changes

<!-- Describe the changes you made. -->

---
Please upvote :+1: this pull request if you are interested in it.

================================================
FILE: .github/renovate.json
================================================
{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": [
    "config:base"
  ],
  "dependencyDashboard": false,
  "commitMessagePrefix": "chore:",
  "labels": ["dependencies"],
  "npm": {
    "ignorePaths": [
      "**/node_modules/**",
      "**/bower_components/**"
    ]
  },
  "ignorePaths": [
    "resources/scripts/**"
  ]
}


================================================
FILE: .github/workflows/ci.yaml
================================================
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: Pull Request
on: pull_request

env:
  DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
  DOTNET_CLI_TELEMETRY_OPTOUT: true

jobs:

  ###################################################
  # BUILD
  ###################################################

  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6
        with:
          fetch-depth: 0

      - name: Setup .NET SDK (global.json)
        uses: actions/setup-dotnet@v5

      - name: Build
        shell: bash
        run: |
          dotnet tool restore
          dotnet make

      - name: Upload Verify Test Results
        if: failure()
        uses: actions/upload-artifact@v7
        with:
          name: verify-test-results
          path: |
            **/*.received.*

================================================
FILE: .github/workflows/publish.yaml
================================================
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: Publish

on:
  push:
    tags:
      - '*'
    branches:
      - main

permissions:
  id-token: write

env:
  DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
  DOTNET_CLI_TELEMETRY_OPTOUT: true

jobs:

  ###################################################
  # PUBLISH
  ###################################################

  build:
    name: Publish NuGet Packages
    runs-on: windows-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6
        with:
          fetch-depth: 0

      - name: Azure login
        uses: azure/login@v3
        with:
          client-id: ${{ secrets.AZURE_CLIENT_ID }}
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}
          allow-no-subscriptions: true

      - name: Setup .NET SDK (global.json)
        uses: actions/setup-dotnet@v5

      - name: Publish
        shell: bash
        run: |
          dotnet tool restore
          dotnet make publish --sign \
            --nuget-key="${{secrets.NUGET_SIGNING_API_KEY}}" \
            --keyvaultUrl="${{secrets.SIGN_KEYVAULT_URL}}" \
            --keyvaultCertificate="${{secrets.SIGN_KEYVAULT_CERTIFICATE}}"

================================================
FILE: .github/workflows/top-issues-dashboard.yml
================================================
name: Top issues action.
on:
  schedule:
    - cron: '0 0 */1 * *'

jobs:
  ShowAndLabelTopIssues:
    name: Display and label top issues.
    runs-on: ubuntu-latest
    steps:
      - name: Top Issues action
        uses: rickstaa/top-issues-action@v1.3.101
        env:
          github_token: ${{ secrets.GITHUB_TOKEN }}
        with:
          top_list_size: 10
          label: true
          dashboard: true
          dashboard_show_total_reactions: true
          top_issues: true
          top_bugs: true
          top_features: true
          feature_label: feature
          top_pull_requests: true

================================================
FILE: .gitignore
================================================
# Misc folders
[Bb]in/
[Oo]bj/
[Tt]emp/
[Pp]ackages/
/.artifacts/
/[Tt]ools/
.idea
.DS_Store

# Sign tool
.sign

# .NET Core CLI
/.dotnet/
/.packages/
dotnet-install.sh*
*.lock.json

# Benchmarks
**/BenchmarkDotNet.Artifacts/**/*.*
!**/BenchmarkDotNet.Artifacts/**/*.md

# Visual Studio
.vs/
.vscode/
launchSettings.json
*.sln.ide/

# Rider
src/.idea/**/workspace.xml
src/.idea/**/tasks.xml
src/.idea/dictionaries
src/.idea/**/dataSources/
src/.idea/**/dataSources.ids
src/.idea/**/dataSources.xml
src/.idea/**/dataSources.local.xml
src/.idea/**/sqlDataSources.xml
src/.idea/**/dynamic.xml
src/.idea/**/uiDesigner.xml

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.sln.docstates
*.userprefs
*.GhostDoc.xml
*StyleCop.Cache

# Build results
[Dd]ebug/
[Rr]elease/
x64/
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.log
*.vspscc
*.vssscc
.builds

# Visual Studio profiler
*.psess
*.vsp
*.vspx

# ReSharper is a .NET coding add-in
_ReSharper*

# NCrunch
.*crunch*.local.xml
_NCrunch_*

# NuGet Packages Directory
packages

# Windows
Thumbs.db

*.received.*

node_modules

================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
  and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
  community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or advances of
  any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
  without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
  professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
conduct@dotnetfoundation.org.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series of
actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within the
community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].

Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].

For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].

[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

================================================
FILE: CONTRIBUTING.md
================================================
# Contribution Guidelines

* [Prerequisites](#prerequisites)
* [Definition of trivial contributions](#definition-of-trivial-contributions)
* [Code](#code)
  * [Code style](#code-style)
  * [Dependencies](#dependencies)
  * [Unit tests](#unit-tests)
* [Contributing process](#contributing-process)
  * [Get buyoff or find open community issues or features](#get-buyoff-or-find-open-community-issues-or-features)
  * [Set up your environment](#Set-up-your-environment)
  * [Prepare commits](#prepare-commits)
  * [Submit pull request](#Submit-pull-request)
  * [Respond to feedback on pull request](#respond-to-feedback-on-pull-request)
* [Other general information](#other-general-information)
* [Acknowledgement](#acknowledgement)

## Prerequisites

By contributing to Spectre.Console, you assert that:

* The contribution is your own original work.
* You have the right to assign the copyright for the work (it is not owned by your employer, or
  you have been given copyright assignment in writing).
* You [license](https://github.com/spectreconsole/spectre.console/blob/main/LICENSE) the contribution under the terms applied to the rest of the Spectre.Console project.
* You agree to follow the [code of conduct](https://github.com/spectreconsole/spectre.console/blob/main/CODE_OF_CONDUCT.md).

## Definition of trivial contributions
It's hard to define what is a trivial contribution. Sometimes even a 1 character change can be considered significant.
Unfortunately because it can be subjective, the decision on what is trivial comes from the maintainers of the project
and not from folks contributing to the project.

What is generally considered trivial:

* Fixing a typo.
* Documentation changes.

## Code
### Code style

Normal .NET coding guidelines apply.
See the [Framework Design Guidelines](https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/) for more information.

### Dependencies

The assembly `Spectre.Console` should have no dependencies except the .NET BCL library.

### Unit tests

Make sure to run all unit tests before creating a pull request.
Any new code should also have reasonable unit test coverage.

## Contributing process
### Get buyoff or find open community issues or features

 * Through GitHub, or through the [GitHub discussions](https://github.com/spectreconsole/spectre.console/discussions) (preferred),
   you talk about a feature you would like to see (or a bug), and why it should be in Spectre.Console.
   * If approved through the GitHub discussions, ensure an accompanying GitHub issue is created with
     information and a link back to the discussion.
  * Once you get a nod from someone in the Spectre.Console Team, you can start on the feature.
  * Alternatively, if a feature is on the issues list with the
   [good first issue](https://github.com/spectreconsole/spectre.console/labels/good%20first%20issue) label,
   it is open for a community member (contributor) to patch. You should comment that you are signing up for it on
   the issue so someone else doesn't also sign up for the work.

### Set up your environment

 * You create, or update, a fork of `spectreconsole/spectre.console` under your GitHub account.
 * From there you create a branch named specific to the feature.
 * In the branch you do work specific to the feature.
 * Please also observe the following:
    * No reformatting
    * No changing files that are not specific to the feature.
    * More covered below in the **Prepare commits** section.
 * Test your changes and please help us out by updating and implementing some automated tests.
   It is recommended that all contributors spend some time looking over the tests in the source code.
   You can't go wrong emulating one of the existing tests and then changing it specific to the behavior you are testing.
 * Please do not update your branch from the main branch unless we ask you to. See the responding to feedback section below.

### Prepare commits
This section serves to help you understand what makes a good commit.

A commit should observe the following:

 * A commit is a small logical unit that represents a change.
 * Should include new or changed tests relevant to the changes you are making.
 * No unnecessary whitespace. Check for whitespace with `git diff --check` and `git diff --cached --check` before commit.
 * You can stage parts of a file for commit.

### Submit pull request
Prerequisites:

 * You are making commits in a feature branch.
 * All code should compile without errors or warnings.
 * All tests should be passing.

Submitting PR:

 * Once you feel it is ready, submit the pull request to the `spectreconsole/spectre.console` repository against the `main` branch
   unless specifically requested to submit it against another branch.
   * In the case of a larger change that is going to require more discussion,
     please submit a PR sooner. Waiting until you are ready may mean more changes than you are
     interested in if the changes are taking things in a direction the maintainers do not want to go.
 * In the pull request, outline what you did and point to specific conversations (as in URLs)
   and issues that you are resolving. This is a tremendous help for us in evaluation and acceptance.
 * Once the pull request is in, please do not delete the branch or close the pull request
   (unless something is wrong with it).
 * One of the Spectre.Console team members, or one of the maintainers, will evaluate it within a
   reasonable time period (which is to say usually within 1-3 weeks). Some things get evaluated
   faster or fast tracked. We are human and we have active lives outside of open source so don't
   fret if you haven't seen any activity on your pull request within a month or two.
   We don't have a Service Level Agreement (SLA) for pull requests.
   Just know that we will evaluate your pull request.

### Respond to feedback on pull request

We may have feedback for you to fix or change some things. We generally like to see that pushed against
the same topic branch (it will automatically update the Pull Request). You can also fix/squash/rebase
commits and push the same topic branch with `--force` (it's generally acceptable to do this on topic
branches not in the main repository, it is generally unacceptable and should be avoided at all costs
against the main repository).

If we have comments or questions when we do evaluate it and receive no response, it will probably
lessen the chance of getting accepted. Eventually, this means it will be closed if it is not accepted.
Please know this doesn't mean we don't value your contribution, just that things go stale. If in the
future you want to pick it back up, feel free to address our concerns/questions/feedback and reopen
the issue/open a new PR (referencing old one).

Sometimes we may need you to rebase your commit against the latest code before we can review it further.
If this happens, you can do the following:

 * `git fetch upstream` (upstream remote would be `spectreconsole/spectre.console`)
 * `git checkout main`
 * `git rebase upstream/main`
 * `git checkout your-branch`
 * `git rebase main`
 * Fix any merge conflicts
 * `git push origin your-branch` (origin would be your GitHub repo or `your-github-username/spectre.console` in this case).
   You may need to `git push origin your-branch --force` to get the commits pushed.
   This is generally acceptable with topic branches not in the mainstream repository.

The only reasons a pull request should be closed and resubmitted are as follows:

 * When the pull request is targeting the wrong branch (this doesn't happen as often).
 * When there are updates made to the original by someone other than the original contributor.
   Then the old branch is closed with a note on the newer branch this supersedes #github_number.

## Other general information
If you reformat code or hit core functionality without an approval from a person on the Spectre.Console Team,
it's likely that no matter how awesome it looks afterwards, it will probably not get accepted.
Reformatting code makes it harder for us to evaluate exactly what was changed.

If you do these things, it will be make evaluation and acceptance easy.
Now if you stray outside of the guidelines we have above, it doesn't mean we are going to ignore
your pull request. It will just make things harder for us.
Harder for us roughly translates to a longer SLA for your pull request.

## Acknowledgement

This contribution guide was taken from the [Chocolatey project](https://chocolatey.org/)
with permission and was edited to follow Spectre.Console's conventions and processes.


================================================
FILE: LICENSE.md
================================================
MIT License

Copyright (c) 2020 Patrik Svensson, Phil Scott, Nils Andresen

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: NuGet.Config
================================================
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
</configuration>

================================================
FILE: README.fa.md
================================================
# `Spectre.Console`

_[![Spectre.Console NuGet Version](https://img.shields.io/nuget/v/spectre.console.svg?style=flat&label=NuGet%3A%20Spectre.Console)](https://www.nuget.org/packages/spectre.console)_

<div dir="rtl">

یک کتابخانه .NET. که ایجاد Console Applicationهای زیبا و cross platform را آسان‌تر می‌کند.  
از کتابخانه عالی [Rich](https://github.com/willmcgugan/rich)  برای پایتون، بسیار الهام گرفته شده است.

## فهرست

1. [امکانات](#features)
2. [نصب](#installing)
3. [مستندات](#documentation)
4. [مثال‌ها](#examples)
5. [مجوز](#license)

<h2 id="features">امکانات</h2>

* با در نظر گرفتن تست واحد نوشته شده است.
* جداول، چارچوب‌ها، پنل‌ها و یک زبان نشانه گذاری که از [rich](https://github.com/willmcgugan/rich) الهام گرفته شده است را پشتیبانی می‌کند.
* از رایج ترین پارامترهای SGR در هنگام فرم دهی متن مانند پررنگ، کم نور، اریب، زیرخط، خط زدن و چشمک زدن پشتیبانی می‌کند.
* پشتیبانی از رنگ‌های 28/8/4/3-بیت در ترمینال.  
  این کتابخانه توانایی ترمینال فعلی را تشخیص داده و در صورت لزوم رنگ‌ها را کاهش می‌دهد.


![Example](resources/example.png)

<h2 id="installing">نصب</h2>

سریع ترین راه برای شروع `Spectre.Console` نصب از طریق NuGet Package می‌باشد.

<pre dir="ltr">
dotnet add package Spectre.Console
</pre>

<h2 id="documentation">مستندات</h2>

مستندات `Spectre.Console` را در اینجا می‌توایند پیدا کنید:

<div dir="ltr">
https://spectreconsole.net/
</div>

<h2 id="examples">مثال‌ها</h2>

To see `Spectre.Console` in action, please see the 
[examples repository](https://github.com/spectreconsole/examples).

<h2 id="license">مجوز</h2>

<div dir="ltr">
Copyright © Patrik Svensson, Phil Scott, Nils Andresen, Cédric Luthi, Frank Ray
</div>

همانطور که Spectre.Console تحت مجوز MIT ارائه شده است؛ برای کسب اطلاعات بیشتر به مجوز مراجعه کنید.

* برای SixLabors.ImageSharp، مشاهده کنید: https://github.com/SixLabors/ImageSharp/blob/master/LICENSE

</div>


================================================
FILE: README.jp.md
================================================
# `Spectre.Console`

_[![Spectre.Console NuGet Version](https://img.shields.io/nuget/v/spectre.console.svg?style=flat&label=NuGet%3A%20Spectre.Console)](https://www.nuget.org/packages/spectre.console)_

綺麗なコンソールアプリケーションを簡単に作成するための.NETライブラリです。
Python用の素晴らしい[Rich ライブラリ](https://github.com/willmcgugan/rich)に強く影響を受けています。

## 目次

1. [特徴](#特徴)
2. [例](#例)
3. [使用方法](#使用方法)  
   3.1. [Static APIの利用](#static-apiの利用)  
   3.2. [コンソールの作成](#コンソールの作成)
4. [例の実行](#例の実行)
5. [クイックスタート](#クイックスタート)
6. [マークアップ](#マークアップ)
7. [絵文字](#絵文字)
8. [テーブル](#テーブル)
9. [例外](#例外)

## 特徴

* ユニットテストを意識して書いています。
* table、grid、panel、マークアップ言語に影響を受けた [rich](https://github.com/willmcgugan/rich) に対応しています。
* 太字、薄字、斜字、下線、斜線、点滅などの一般的なSGR parameters に対応しています。
* ターミナルで 3/4/8/24ビットカラーに対応しています。
  ライブラリは現在のターミナルの性能を検知し、必要なカラーにダウングレードします

## 例

![Example](resources/example.png)

## 使用方法

`Spectre.Console` APIはステートフルで、スレッドセーフではありません。
異なるスレッドからコンソールに書く必要がある場合、通常の`System.Console` APIを使用するときと同様、適切な注意を払ってください。

現在の端末がANSIエスケープシーケンスに対応していない場合、
`Spectre.Console`は、`System.Console` APIの利用に切り替わります。

_メモ: このライブラリは現在開発中で、APIは1.0のリリースまでの間に変更されたり、
削除されたりする可能性があります。_

### Static APIの利用


`System.Console` APIでするように、テキストを出力したいだけの時にはstatic APIが最適ですが、綺麗です。

```csharp
AnsiConsole.Foreground = Color.CornflowerBlue;
AnsiConsole.Decoration = Decoration.Underline | Decoration.Bold;
AnsiConsole.WriteLine("Hello World!");

AnsiConsole.Reset();
AnsiConsole.MarkupLine("[bold yellow on red]{0}[/] [underline]world[/]!", "Goodbye");
```

もし、デフォルトの`IAnsiConsole`への参照を取得したい場合、
`AnsiConsole.Console`経由でアクセスできます。

### コンソールの作成

単体テスト中にコードの実行環境を制御したい場合など、
特定の機能をもつコンソールを明示的に作成すると便利なことがあります。

単体テストの一部としてコードで `AnsiConsole`を使わないことを推奨します。

```csharp
IAnsiConsole console = AnsiConsole.Create(
    new AnsiConsoleSettings()
    {
        Ansi = AnsiSupport.Yes,
        ColorSystem = ColorSystemSupport.TrueColor,
        Out = new StringWriter(),
    });
```

_メモ: 主導でコンソールを作成しているときに特定のカラーシステムを指定できたとしても、
ユーザーのターミナルでは使えないかもしれないことを覚えておいてください。
テスト用にIAnsiConsoleを作成していない限り、
常に`ColorSystemSupport.Detect` と `AnsiSupport.Detect`を使用してください。_

## 例の実行

Spectre.Consoleでできることを見るために、 
[dotnet-example](https://github.com/patriksvensson/dotnet-example)グローバルツールをインストールします。


```
> dotnet tool restore
```

このリポジトリで提供している例が一覧表示されます

```
> dotnet example

╭────────────┬───────────────────────────────────────┬──────────────────────────────────────────────────────╮
│ Name       │ Path                                  │ Description                                          │
├────────────┼───────────────────────────────────────┼──────────────────────────────────────────────────────┤
│ Borders    │ examples/Borders/Borders.csproj       │ Demonstrates the different kind of borders.          │
│ Calendars  │ examples/Calendars/Calendars.csproj   │ Demonstrates how to render calendars.                │
│ Colors     │ examples/Colors/Colors.csproj         │ Demonstrates how to use colors in the console.       │
│ Columns    │ examples/Columns/Columns.csproj       │ Demonstrates how to render data into columns.        │
│ Emojis     │ examples/Emojis/Emojis.csproj         │ Demonstrates how to render emojis.                   │
│ Exceptions │ examples/Exceptions/Exceptions.csproj │ Demonstrates how to render formatted exceptions.     │
│ Grids      │ examples/Grids/Grids.csproj           │ Demonstrates how to render grids in a console.       │
│ Info       │ examples/Info/Info.csproj             │ Displays the capabilities of the current console.    │
│ Links      │ examples/Links/Links.csproj           │ Demonstrates how to render links in a console.       │
│ Panels     │ examples/Panels/Panels.csproj         │ Demonstrates how to render items in panels.          │
│ Rules      │ examples/Rules/Rules.csproj           │ Demonstrates how to render horizontal rules (lines). │
│ Tables     │ examples/Tables/Tables.csproj         │ Demonstrates how to render tables in a console.      │
│ Trees      │ examples/Trees/Trees.csproj           │ Demonstrates how to render trees in a console.       │
╰────────────┴───────────────────────────────────────┴──────────────────────────────────────────────────────╯
```

そして、例を実行します

```
> dotnet example tables
┌──────────┬──────────┬────────┐
│ Foo      │ Bar      │ Baz    │
├──────────┼──────────┼────────┤
│ Hello    │ World!   │        │
│ Bonjour  │ le       │ monde! │
│ Hej      │ Världen! │        │
└──────────┴──────────┴────────┘
```

## クイックスタート
pectre.Consoleの利用を開始する最初の方法は、Nugetパッケージをインストールすることです。

```shell
> dotnet add package Spectre.Console
```

その後、`Spectre.Console`名前空間を参照する必要があります。一度参照したら、提供されている全ての機能を使用できます。

```csharp
using Spectre.Console

public static class Program
{
    public static void Main(string[] args)
    {
        AnsiConsole.Markup("[underline red]Hello[/] World!");
    }
}
```

## マークアップ
`Markup`クラスは、コンソールにリッチなテキストを出力することができます。

### 文法

コンソールマークアップはbbcodeに影響を受けた文法を利用します。角括弧でスタイルを書いたら(スタイルを参照)、例えば、`[bold red]`
は、`[/]`で閉じるまでスタイルが適用されます。

```csharp
AnsiConsole.Render(new Markup("[bold yellow]Hello[/] [red]World![/]"));
```

`Markup` クラスは`IRenderable`を実装しており、table、grid、Panelを使用できることを意味します。
`IRenderable`のレンダリングに対応している多くのクラスは、リッチテキストの描画を上書きます。

```csharp
var table = new Table();
table.AddColumn(new TableColumn(new Markup("[yellow]Foo[/]")));
table.AddColumn(new TableColumn("[blue]Bar[/]"));
```

### 便利なメソッド

`AnsiConsole`には、新しい`Markup`インスタンスをインスタンス化することなく、コンソールにマークアップテキストを書き込める便利なメソッドがあります。

```csharp
AnsiConsole.Markup("[underline green]Hello[/] ");
AnsiConsole.MarkupLine("[bold]World[/]");
```

### エスケープ文字列

`[`を出力するために、 `[[`を利用し、`]`を出力するために`]]`を利用します。

```csharp
AnsiConsole.Markup("[[Hello]] "); // [Hello]
AnsiConsole.Markup("[red][[World]][/]"); // [World]
```

`SafeMarkup`拡張メソッドを使用することもできます。

```csharp
AnsiConsole.Markup("[red]{0}[/]", "Hello [World]".SafeMarkup());
```

### カラー

`new Style(foreground: Color.Maroon)`のようなコード、または、`AnsiConsole.Markup("[maroon on blue]Hello[/]")`のようなマークアップテキストで色を使用できます。

### 背景色の設定

カラー指定の際に、`on`を付けることで、マークアップで背景色を設定できます。

```
[bold yellow on blue]Hello[/]
[default on blue]World[/]
```

### 絵文字の描画

マークアップの一部として絵文字を出力するために、emojiショートコードが使用できます。

```csharp
AnsiConsole.MarkupLine("Hello :globe_showing_europe_africa:!");
```

emojiのスタイルについては、付録の[Emoji](./appendix/emojis) を参照してください。

### カラー

上の例では、全ての色は名前で参照されています。
しかし、16進数やRGB表現をマークダウンで色指定に使用できます。

```csharp
AnsiConsole.Markup("[red]Foo[/] ");
AnsiConsole.Markup("[#ff0000]Bar[/] ");
AnsiConsole.Markup("[rgb(255,0,0)]Baz[/] ");
```

## 絵文字

どのような絵文字が使用できるかは、使用しているOSやターミナルに依存し、どのように表示されるかは保証されません。絵文字の幅計算は正確ではないため、表、パネル、グリッドで使用する場合は表示がずれるかもしれません。

完全な互換性を確保するために、Unicode 13.0 より以前の`Emoji_Presentation`カテゴリにあるものだけを使用することを検討してください。
公式の絵文字一覧
https://www.unicode.org/Public/UCD/latest/ucd/emoji/emoji-data.txt


```csharp
// Markup
AnsiConsole.MarkupLine("Hello :globe_showing_europe_africa:!");

// Constant
var hello = "Hello " + Emoji.Known.GlobeShowingEuropeAfrica;
```

テキスト内の絵文字を置き換えることができます。

```csharp
var phrase = "Mmmm :birthday_cake:";
var rendered
```

既存の絵文字を別のものにしたり、完全に新しい物を追加したいことがあります。このために、`Emoji.Remap`メソッドを使用できます。
この方法は、マークアップ文字と`Emoji.Replace`の両方で動作します。

```csharp
// Remap the emoji
Emoji.Remap("globe_showing_europe_africa", "😄");

// Render markup
AnsiConsole.MarkupLine("Hello :globe_showing_europe_africa:!");

// Replace emojis in string
var phrase = "Hello :globe_showing_europe_africa:!";
var rendered = Emoji.Replace(phrase);
```

## テーブル

テーブルはターミナルで表データを表示するのに完璧な方法です。
`Spectre.Console` は、テーブルの描画にとても優れていて、全てのカラムは中に合わせて調整してくれます。
`IRenderable`を実装しているものは、列ヘッダやセル、別のテーブルとして使用できます。

### 使い方

テーブルを描画するために、`Table`インスタンスを作成し、必要な数の列を追加し、行を追加します。
テーブルをコンソールの`Render`メソッドに渡して終わりです。

```csharp
// テーブルの作成
var table = new Table();

// 列の追加
table.AddColumn("Foo");
table.AddColumn(new TableColumn("Bar").Centered());

// 行の追加
table.AddRow("Baz", "[green]Qux[/]");
table.AddRow(new Markup("[blue]Corgi[/]"), new Panel("Waldo"));

// コンソールにテーブルの描画
AnsiConsole.Render(table);
```

### 罫線


```csharp
// 罫線を設定します
table.SetBorder(Border.None);
table.SetBorder(Border.Ascii);
table.SetBorder(Border.Square);
table.SetBorder(Border.Rounded);
```

### 拡大 / 縮小

```csharp
// テーブル幅を最大に設定します
table.Expand();

// テーブル幅を最小に設定します
table.Collapse();
```

### ヘッダーを隠す

```csharp
// 全ての列のヘッダーを隠します
table.HideHeaders();
```

### テーブル幅の設定

```csharp
// テーブル幅50セルに設定します
table.SetWidth(50);
```

### 整列(アライメント)

```csharp
// 整列を明示的に設定する
column.SetAlignment(Justify.Right);
```

### パディング

```csharp
// 左と右のパディングを設定する
column.SetPadding(left: 3, right: 5);

// 個別にパディングを設定する
column.PadLeft(3);
column.PadRight(5);
```

### 列改行の無効化

```csharp
// 列改行の無効化
column.NoWrap();
```

### 列幅の設定

```csharp
// 列幅の設定(これはまだ柔軟な拡張メソッドがありません)
column.Width = 15;
```

## 例外
例外はターミナルで見たときに読みやすいとは限りません。
`WriteException`メソッドを使用することで、例外をもう少し読みやすくすることができます。

```csharp
AnsiConsole.WriteException(ex);
```

### 例外の省略表示

例外の特定部分を短くして、さらに読みやすくしたり、パスをクリック可能なハイパーリンクにすることもできます。
ハイパーリンクがクリックできるかはターミナル次第です。

```csharp
AnsiConsole.WriteException(ex, 
    ExceptionFormats.ShortenPaths | ExceptionFormats.ShortenTypes |
    ExceptionFormats.ShortenMethods | ExceptionFormats.ShowLinks);
```

### 例外出力のカスタマイズ

例外の特定部分を短縮するだけでなく、デフォルトのスタイルを上書きすることもできます。

```csharp
AnsiConsole.WriteException(ex, new ExceptionSettings
{
    Format = ExceptionFormats.ShortenEverything | ExceptionFormats.ShowLinks,
    Style = new ExceptionStyle
    {
        Exception = Style.WithForeground(Color.Grey),
        Message = Style.WithForeground(Color.White),
        NonEmphasized = Style.WithForeground(Color.Cornsilk1),
        Parenthesis = Style.WithForeground(Color.Cornsilk1),
        Method = Style.WithForeground(Color.Red),
        ParameterName = Style.WithForeground(Color.Cornsilk1),
        ParameterType = Style.WithForeground(Color.Red),
        Path = Style.WithForeground(Color.Red),
        LineNumber = Style.WithForeground(Color.Cornsilk1),
    }
});
```

================================================
FILE: README.md
================================================
# `Spectre.Console`

_[![Spectre.Console NuGet Version](https://img.shields.io/nuget/v/spectre.console.svg?style=flat&label=NuGet%3A%20Spectre.Console)](https://www.nuget.org/packages/spectre.console)_ [![Netlify Status](https://api.netlify.com/api/v1/badges/1eaf215a-eb9c-45e4-8c64-c90b62963149/deploy-status)](https://app.netlify.com/sites/spectreconsole/deploys)

A .NET library that makes it easier to create beautiful, cross platform, console applications.  
It is heavily inspired by the excellent Python library, [Rich](https://github.com/willmcgugan/rich). Detailed instructions for using `Spectre.Console` are located on the project website, https://spectreconsole.net

## Table of Contents

1. [Features](#features)
1. [Installing](#installing)
1. [Documentation](#documentation)
1. [Examples](#examples)
1. [Code of Conduct](#code-of-conduct)
1. [.NET Foundation](#net-foundation)
1. [License](#license)

## Features

* Supports tables, grids, panels, and a [Rich](https://github.com/willmcgugan/rich) inspired markup language.
* Supports the most common SGR parameters when it comes to text 
  styling such as bold, dim, italic, underline, strikethrough, 
  and blinking text.
* Supports 3/4/8/24-bit colors in the terminal.  
  The library will detect the capabilities of the current terminal 
  and downgrade colors as needed.
* Written with unit testing in mind.

![Example](resources/example.png)

## Important Notices

> [!IMPORTANT]\
> We use the [Top Issues Dashboard](https://github.com/spectreconsole/spectre.console/issues/1517) for tracking community demand. Please upvote :+1: the issues and pull requests you are interested in.

## Installing

The fastest way of getting started using `Spectre.Console` is to install the NuGet package.

```csharp
dotnet add package Spectre.Console
```

## Documentation

The documentation for `Spectre.Console` can be found at
https://spectreconsole.net

## Examples

To see `Spectre.Console` in action, please see the 
[examples repository](https://github.com/spectreconsole/examples).

## Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community.
For more information see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).

## .NET Foundation

This project is supported by the [.NET Foundation](https://dotnetfoundation.org).

## License

Copyright © Patrik Svensson, Phil Scott, Nils Andresen, Cédric Luthi, Frank Ray

`Spectre.Console` is provided as-is under the MIT license. For more information see LICENSE.

* SixLabors.ImageSharp, a library which `Spectre.Console` relies upon, is licensed under Apache 2.0 when distributed as part of `Spectre.Console`. The Six Labors Split License covers all other usage, see: https://github.com/SixLabors/ImageSharp/blob/master/LICENSE 


================================================
FILE: README.pt-BR.md
================================================
# `Spectre.Console`

_[![Spectre.Console NuGet Versão](https://img.shields.io/nuget/v/spectre.console.svg?style=flat&label=NuGet%3A%20Spectre.Console)](https://www.nuget.org/packages/spectre.console)_

Uma biblioteca .NET que torna mais fácil criar aplicativos de console bonitos e multiplataforma. 
É fortemente inspirada na excelente [biblioteca Rich](https://github.com/willmcgugan/rich) 
para Python.

## Índice de Conteúdo

1. [Funcionalidades](#funcionalidades)
1. [Instalação](#instalação)
1. [Documentação](#documentação)
1. [Exemplos](#exemplos)
1. [Licença](#licença)

## Funcionalidades

* Desenvolvida com testes unitários em mente.
* Suporta tabelas, grades, painéis, e uma linguagem de marcação inspirada em [rich](https://github.com/willmcgugan/rich).
* Suporta os parâmetros SGR mais comuns quando se trata de estilo de texto, 
  como negrito, esmaecido, itálico, sublinhado, tachado 
  e texto piscando.
* Suporta cores de 3/4/8/24 bits no terminal.
  A biblioteca detectará os recursos do terminal atual 
  e reduz as cores conforme necessário.

![Exemplo](resources/example.png)

## Instalação

A maneira mais rápida de começar a usar o `Spectre.Console` é instalar o pacote NuGet.

```csharp
dotnet add package Spectre.Console
```

## Documentação

A documentação do `Spectre.Console` pode ser encontrada em 
https://spectreconsole.net/

## Exemplos

To see `Spectre.Console` in action, please see the 
[examples repository](https://github.com/spectreconsole/examples).

## Licença

Copyright © Patrik Svensson, Phil Scott, Nils Andresen, Cédric Luthi, Frank Ray

Spectre.Console é fornecido no estado em que se encontra sob a licença do MIT. Para obter mais informações, consulte o arquivo [LICENSE](LICENSE.md).

* Para SixLabors.ImageSharp, consulte https://github.com/SixLabors/ImageSharp/blob/master/LICENSE

================================================
FILE: README.zh.md
================================================
# `Spectre.Console`

_[![Spectre.Console NuGet Version](https://img.shields.io/nuget/v/spectre.console.svg?style=flat&label=NuGet%3A%20Spectre.Console)](https://www.nuget.org/packages/spectre.console)_

`Spectre.Console`是一个 .NET 的库,可以更轻松地创建美观的跨平台控制台应用程序。

深受 [Rich](https://github.com/willmcgugan/rich) 这个Python优秀库的启发。

## 目录

1. [功能](#功能)
1. [安装](#安装)
1. [文档](#文档)
1. [例子](#例子)
1. [开源许可](#开源许可)

## 功能

* 编写时考虑到了单元测试。
* 支持 tables、grid、panel 和 [rich](https://github.com/willmcgugan/rich) 所支持的标记语言。
* 支持大部分的 SGR 参数,包括粗体、暗淡字、斜体、下划线、删除线和闪烁文本。
* 支持终端显示 3/4/8/24 位色。自动检测终端类型,自适应颜色范围。

![例子](resources/example.png)

## 安装

最快的安装方式,就是用NuGet包管理直接安装`Spectre.Console`。

```csharp
dotnet add package Spectre.Console
```

## 文档

`Spectre.Console`的文档可以在这里查看
https://spectreconsole.net/

## 例子

To see `Spectre.Console` in action, please see the 
[examples repository](https://github.com/spectreconsole/examples).

## 开源许可

版权所有 © Patrik Svensson, Phil Scott, Nils Andresen, Cédric Luthi, Frank Ray

Spectre.Console 基于 MIT 协议提供。查看 LICENSE 文件了解更多信息。

* SixLabors.ImageSharp 的协议请查看 https://github.com/SixLabors/ImageSharp/blob/master/LICENSE


================================================
FILE: build.cs
================================================
#:sdk Cake.Sdk@6.0.0

var solution = "./src/Spectre.Console.slnx";

////////////////////////////////////////////////////////////////
// Arguments

var target = Argument("target", "Default");
var configuration = Argument("configuration", "Release");
var noLinting = HasArgument("no-lint");

////////////////////////////////////////////////////////////////
// Tasks

Task("Clean")
    .Does(ctx =>
{
    ctx.CleanDirectory("./.artifacts");
});

Task("Lint")
    .Does(ctx =>
{
    ctx.DotNetFormatStyle(solution, new DotNetFormatSettings
    {
        VerifyNoChanges = true,
    });
});

Task("Build")
    .IsDependentOn("Clean")
    .Does(ctx =>
{
    ctx.DotNetBuild(solution, new DotNetBuildSettings
    {
        Configuration = configuration,
        Verbosity = DotNetVerbosity.Minimal,
        NoLogo = true,
        NoIncremental = ctx.HasArgument("rebuild"),
        MSBuildSettings = new DotNetMSBuildSettings()
            .TreatAllWarningsAs(MSBuildTreatAllWarningsAs.Error)
    });
});

Task("Test")
    .IsDependentOn("Build")
    .Does(ctx =>
{
    ctx.DotNetTest(solution, new DotNetTestSettings
    {
        Configuration = configuration,
        Verbosity = DotNetVerbosity.Minimal,
        NoLogo = true,
        NoRestore = true,
        NoBuild = true,
    });
});

Task("Package")
    .IsDependentOn("Test")
    .Does(ctx =>
{
    ctx.DotNetPack(solution, new DotNetPackSettings
    {
        Configuration = configuration,
        Verbosity = DotNetVerbosity.Minimal,
        NoLogo = true,
        NoRestore = true,
        NoBuild = true,
        OutputDirectory = "./.artifacts",
        MSBuildSettings = new DotNetMSBuildSettings()
            .TreatAllWarningsAs(MSBuildTreatAllWarningsAs.Error)
    });
});

Task("Sign-Binaries")
    .IsDependentOn("Package")
    .WithCriteria(ctx => ctx.HasArgument("sign"), "Not signing binaries")
    .Does(ctx =>
{
    // Ensure the sign tool is installed
    ctx.StartProcess("dotnet", new ProcessSettings
    {
        Arguments = "tool install --tool-path .sign --prerelease sign"
    });

    var commandSettings = new CommandSettings
    {
        ToolExecutableNames = ["sign", "sign.exe"],
        ToolName = "sign",
        ToolPath = ResolveSignTool("sign.exe")
            ?? ResolveSignTool("sign")
            ?? throw new Exception("Failed to locate sign tool"),
    };

    var files = ctx.GetFiles("./.artifacts/*.nupkg");
    foreach (var file in files)
    {
        ctx.Information("Signing {0}...", file.FullPath);

        var arguments = new ProcessArgumentBuilder()
            .Append("code")
            .Append("azure-key-vault")
            .AppendQuoted(file.FullPath)
            .AppendSwitchQuoted("--file-list", ctx.MakeAbsolute(ctx.File("./resources/signclient.filter")).FullPath)
            .AppendSwitchQuoted("--publisher-name", "Spectre Console")
            .AppendSwitchQuoted("--description", "A .NET library that makes it easier to create beautiful console applications.")
            .AppendSwitchQuoted("--description-url", "https://spectreconsole.net")
            .AppendSwitchQuoted("--azure-credential-type", "azure-cli")
            .AppendSwitchQuotedSecret("--azure-key-vault-certificate", Argument<string>("keyvaultCertificate"))
            .AppendSwitchQuotedSecret("--azure-key-vault-url", Argument<string>("keyvaultUrl"));

        ctx.Command(commandSettings, arguments);
        ctx.Information("Done signing {0}.", file.FullPath);
    }

    FilePath? ResolveSignTool(string name)
    {
        var path = ctx.MakeAbsolute(ctx.Directory(".sign").Path.CombineWithFilePath(name));
        return ctx.FileExists(path) ? path : null;
    }
});

Task("Publish-NuGet")
    .WithCriteria(ctx => BuildSystem.IsRunningOnGitHubActions, "Not running on GitHub Actions")
    .IsDependentOn("Sign-Binaries")
    .Does(ctx =>
{
    var apiKey = Argument<string?>("nuget-key", null);
    if (string.IsNullOrWhiteSpace(apiKey))
    {
        throw new CakeException("No NuGet API key was provided.");
    }

    foreach (var file in ctx.GetFiles("./.artifacts/*.nupkg"))
    {
        ctx.Information("Publishing {0}...", file.GetFilename().FullPath);
        DotNetNuGetPush(file.FullPath, new DotNetNuGetPushSettings
        {
            Source = "https://api.nuget.org/v3/index.json",
            ApiKey = apiKey,
        });
    }
});

////////////////////////////////////////////////////////////////
// Targets

Task("Publish")
    .IsDependentOn("Publish-NuGet");

Task("Default")
    .IsDependentOn("Package");

////////////////////////////////////////////////////////////////
// Execution

RunTarget(target);

================================================
FILE: dotnet-tools.json
================================================
{
  "version": 1,
  "isRoot": true,
  "tools": {
    "verify.tool": {
      "version": "0.7.0",
      "commands": [
        "dotnet-verify"
      ],
      "rollForward": false
    },
    "make": {
      "version": "0.11.0",
      "commands": [
        "dotnet-make"
      ],
      "rollForward": false
    }
  }
}

================================================
FILE: global.json
================================================
{
  "$schema": "http://json.schemastore.org/global",
  "sdk": {
    "version": "10.0.201",
    "rollForward": "latestFeature"
  }
}


================================================
FILE: resources/nuget/Spectre.Console.Ansi.md
================================================
# `Spectre.Console.Ansi`

================================================
FILE: resources/nuget/Spectre.Console.ImageSharp.md
================================================
# `Spectre.Console.ImageSharp`

A .NET library that extends [Spectre.Console](https://github.com/spectreconsole/spectre.console) with ImageSharp superpowers.

Detailed instructions for using `Spectre.Console.ImageSharp` are located on the project website, https://spectreconsole.net/widgets/canvas-image

================================================
FILE: resources/nuget/Spectre.Console.Json.md
================================================
# `Spectre.Console.Json`

A .NET library that extends [Spectre.Console](https://github.com/spectreconsole/spectre.console) with JSON superpowers.

Detailed instructions for using this library is located on  the project website, https://spectreconsole.net/widgets/json

================================================
FILE: resources/nuget/Spectre.Console.Testing.md
================================================
# `Spectre.Console.Testing`

A .NET library that makes it easier to write unit tests for [Spectre.Console](https://github.com/spectreconsole/spectre.console) applications.

Detailed instructions for using this library is located on  the project website, https://spectreconsole.net

================================================
FILE: resources/nuget/Spectre.Console.md
================================================
# `Spectre.Console`

A .NET library that makes it easier to create beautiful, cross platform, console applications. It is heavily inspired by the excellent Python library, [Rich](https://github.com/willmcgugan/rich).

Detailed instructions for using this library is located on  the project website, https://spectreconsole.net

================================================
FILE: resources/scripts/.gitignore
================================================
Generated
Temp

================================================
FILE: resources/scripts/Generate-Colors.ps1
================================================
#!/usr/local/bin/pwsh

##########################################################
# Script that generates known colors and lookup tables.
##########################################################

$Output = Join-Path $PSScriptRoot "Temp"
$Generator = Join-Path $PSScriptRoot "/../../src/Generator" 
$Source = Join-Path $PSScriptRoot "/../../src/Spectre.Console"

if(!(Test-Path $Output -PathType Container)) {
    New-Item -ItemType Directory -Path $Output | Out-Null
}

# Generate the files
Push-Location $Generator
&dotnet run -- colors "$Output"
if(!$?) { 
    Pop-Location
    Throw "An error occured when generating code."
}
Pop-Location

# Copy the files to the correct location
Copy-Item  (Join-Path "$Output" "Color.Generated.cs") -Destination "$Source/Color.Generated.cs"
Copy-Item  (Join-Path "$Output" "ColorPalette.Generated.cs") -Destination "$Source/Internal/Colors/ColorPalette.Generated.cs"
Copy-Item  (Join-Path "$Output" "ColorTable.Generated.cs") -Destination "$Source/Internal/Colors/ColorTable.Generated.cs"

================================================
FILE: resources/scripts/Generate-Emoji.ps1
================================================
#!/usr/local/bin/pwsh

##########################################################
# Script that generates the emoji lookup table.
##########################################################

$Output = Join-Path $PSScriptRoot "Temp"
$Generator = Join-Path $PSScriptRoot "/../../src/Generator"
$Source = Join-Path $PSScriptRoot "/../../src/Spectre.Console"

if(!(Test-Path $Output -PathType Container)) {
    New-Item -ItemType Directory -Path $Output | Out-Null
}

# Generate the files
Push-Location $Generator
&dotnet run -- emoji "$Output" --input $Output
if(!$?) {
    Pop-Location
    Throw "An error occured when generating code."
}
Pop-Location

# Copy the files to the correct location
Copy-Item  (Join-Path "$Output" "Emoji.Generated.cs") -Destination "$Source/Emoji.Generated.cs"

================================================
FILE: resources/scripts/Generate-Spinners.ps1
================================================
#!/usr/local/bin/pwsh

##########################################################
# Script that generates progress spinners.
##########################################################

$Output = Join-Path $PSScriptRoot "Temp"
$Generator = Join-Path $PSScriptRoot "/../../src/Generator"
$Source = Join-Path $PSScriptRoot "/../../src/Spectre.Console"

if(!(Test-Path $Output -PathType Container)) {
    New-Item -ItemType Directory -Path $Output | Out-Null
}

# Generate the files
Push-Location $Generator
&dotnet run -- spinners "$Output"
if(!$?) {
    Pop-Location
    Throw "An error occured when generating code."
}
Pop-Location

# Copy the files to the correct location
Copy-Item  (Join-Path "$Output" "Spinner.Generated.cs") -Destination "$Source/Live/Progress/Spinner.Generated.cs"


================================================
FILE: resources/signclient.filter
================================================
**/Spectre.Console*

================================================
FILE: src/.editorconfig
================================================
[*.cs]
# Prefer file scoped namespace declarations
csharp_style_namespace_declarations = file_scoped:warning

# Sort using and Import directives with System.* appearing first
dotnet_sort_system_directives_first = true
dotnet_separate_import_directive_groups = false

# Avoid "this." and "Me." if not necessary
dotnet_style_qualification_for_field = false:refactoring
dotnet_style_qualification_for_property = false:refactoring
dotnet_style_qualification_for_method = false:refactoring
dotnet_style_qualification_for_event = false:refactoring

# Use language keywords instead of framework type names for type references
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion

# Suggest more modern language features when available
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion

# Non-private static fields are PascalCase
dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.symbols = non_private_static_fields
dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.style = non_private_static_field_style
dotnet_naming_symbols.non_private_static_fields.applicable_kinds = field
dotnet_naming_symbols.non_private_static_fields.applicable_accessibilities = public, protected, internal, protected_internal, private_protected
dotnet_naming_symbols.non_private_static_fields.required_modifiers = static
dotnet_naming_style.non_private_static_field_style.capitalization = pascal_case

# Non-private readonly fields are PascalCase
dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.symbols = non_private_readonly_fields
dotnet_naming_rule.non_private_readonly_fields_should_be_pascal_case.style = non_private_readonly_field_style
dotnet_naming_symbols.non_private_readonly_fields.applicable_kinds = field
dotnet_naming_symbols.non_private_readonly_fields.applicable_accessibilities = public, protected, internal, protected_internal, private_protected
dotnet_naming_symbols.non_private_readonly_fields.required_modifiers = readonly
dotnet_naming_style.non_private_readonly_field_style.capitalization = pascal_case

# Constants are PascalCase
dotnet_naming_rule.constants_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.constants_should_be_pascal_case.symbols = constants
dotnet_naming_rule.constants_should_be_pascal_case.style = constant_style
dotnet_naming_symbols.constants.applicable_kinds = field, local
dotnet_naming_symbols.constants.required_modifiers = const
dotnet_naming_style.constant_style.capitalization = pascal_case

# Instance fields are camelCase and start with _
dotnet_naming_rule.instance_fields_should_be_camel_case.severity = suggestion
dotnet_naming_rule.instance_fields_should_be_camel_case.symbols = instance_fields
dotnet_naming_rule.instance_fields_should_be_camel_case.style = instance_field_style
dotnet_naming_symbols.instance_fields.applicable_kinds = field
dotnet_naming_style.instance_field_style.capitalization = camel_case
dotnet_naming_style.instance_field_style.required_prefix = _

# Locals and parameters are camelCase
dotnet_naming_rule.locals_should_be_camel_case.severity = suggestion
dotnet_naming_rule.locals_should_be_camel_case.symbols = locals_and_parameters
dotnet_naming_rule.locals_should_be_camel_case.style = camel_case_style
dotnet_naming_symbols.locals_and_parameters.applicable_kinds = parameter, local
dotnet_naming_style.camel_case_style.capitalization = camel_case

# Local functions are PascalCase
dotnet_naming_rule.local_functions_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.local_functions_should_be_pascal_case.symbols = local_functions
dotnet_naming_rule.local_functions_should_be_pascal_case.style = local_function_style
dotnet_naming_symbols.local_functions.applicable_kinds = local_function
dotnet_naming_style.local_function_style.capitalization = pascal_case

# By default, name items with PascalCase
dotnet_naming_rule.members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.members_should_be_pascal_case.symbols = all_members
dotnet_naming_rule.members_should_be_pascal_case.style = pascal_case_style
dotnet_naming_symbols.all_members.applicable_kinds = *
dotnet_naming_style.pascal_case_style.capitalization = pascal_case

# Newline settings
csharp_new_line_before_open_brace = all
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_between_query_expression_clauses = true

# Indentation preferences
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = true
csharp_indent_switch_labels = true
csharp_indent_labels = flush_left

# Prefer "var" everywhere
csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = true:suggestion

# Prefer method-like constructs to have a block body
csharp_style_expression_bodied_methods = false:none
csharp_style_expression_bodied_constructors = false:none
csharp_style_expression_bodied_operators = false:none

# Prefer property-like constructs to have an expression-body
csharp_style_expression_bodied_properties = true:none
csharp_style_expression_bodied_indexers = true:none
csharp_style_expression_bodied_accessors = true:none

# Suggest more modern language features when available
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion

# Space preferences
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = do_not_ignore
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false

# Blocks are allowed
csharp_prefer_braces = true:silent
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = true

# RS0037: PublicAPI.txt is missing '#nullable enable'
dotnet_diagnostic.rs0037.severity = none

# IDE0055: Fix formatting
dotnet_diagnostic.ide0055.severity = warning

# SA1101: Prefix local calls with this
dotnet_diagnostic.sa1101.severity = none

# SA1633: File should have header
dotnet_diagnostic.sa1633.severity = none

# SA1201: Elements should appear in the correct order
dotnet_diagnostic.sa1201.severity = none

# SA1202: Public members should come before private members
dotnet_diagnostic.sa1202.severity = none

# SA1309: Field names should not begin with underscore
dotnet_diagnostic.sa1309.severity = none

# SA1404: Code analysis suppressions should have justification
dotnet_diagnostic.sa1404.severity = none

# SA1516: Elements should be separated by a blank line
dotnet_diagnostic.sa1516.severity = none

# CA1303: Do not pass literals as localized parameters
dotnet_diagnostic.ca1303.severity = none

# CSA1204: Static members should appear before non-static members
dotnet_diagnostic.sa1204.severity = none

# IDE0052: Remove unread private members
dotnet_diagnostic.ide0052.severity = warning

# IDE0063: Use simple 'using' statement
csharp_prefer_simple_using_statement = false:suggestion

# IDE0018: Variable declaration can be inlined
dotnet_diagnostic.ide0018.severity = warning

# SA1625: Element documenation should not be copied and pasted
dotnet_diagnostic.sa1625.severity = none

# IDE0005: Using directive is unnecessary
dotnet_diagnostic.ide0005.severity = warning

# SA1117: Parameters should be on same line or separate lines
dotnet_diagnostic.sa1117.severity = none

# SA1404: Code analysis suppression should have justification
dotnet_diagnostic.sa1404.severity = none

# SA1101: Prefix local calls with this
dotnet_diagnostic.sa1101.severity = none

# SA1633: File should have header
dotnet_diagnostic.sa1633.severity = none

# SA1649: File name should match first type name
dotnet_diagnostic.sa1649.severity = none

# SA1402: File may only contain a single type
dotnet_diagnostic.sa1402.severity = none

# CA1814: Prefer jagged arrays over multidimensional
dotnet_diagnostic.ca1814.severity = none

# RCS1194: Implement exception constructors.
dotnet_diagnostic.rcs1194.severity = none

# CA1032: Implement standard exception constructors
dotnet_diagnostic.ca1032.severity = none

# CA1826: Do not use Enumerable methods on indexable collections. Instead use the collection directly
dotnet_diagnostic.ca1826.severity = none

# RCS1079: Throwing of new NotImplementedException.
dotnet_diagnostic.rcs1079.severity = warning

# RCS1057: Add empty line between declarations.
dotnet_diagnostic.rcs1057.severity = none

# RCS1057: Validate arguments correctly
dotnet_diagnostic.rcs1227.severity = none

# IDE0004: Remove Unnecessary Cast
dotnet_diagnostic.ide0004.severity = warning

# CA1810: Initialize reference type static fields inline
dotnet_diagnostic.ca1810.severity = none

# IDE0044: Add readonly modifier
dotnet_diagnostic.ide0044.severity = warning

# RCS1047: Non-asynchronous method name should not end with 'Async'.
dotnet_diagnostic.rcs1047.severity = none

# RCS1090: Call 'ConfigureAwait(false)'.
dotnet_diagnostic.rcs1090.severity = warning

# SA1633: The file header is missing or not located at the top of the file
dotnet_diagnostic.sa1633.severity = none

# CA2016: Forward the CancellationToken parameter to methods that take one
dotnet_diagnostic.ca2016.severity = warning

# ReSharper properties
resharper_trailing_comma_in_multiline_lists = true
resharper_wrap_object_and_collection_initializer_style = chop_always


================================================
FILE: src/Benchmarks/BenchmarkDotNet.Artifacts/results/Benchmarks.AnsiBenchmarks-report-github.md
================================================
```

BenchmarkDotNet v0.15.8, macOS Tahoe 26.2 (25C56) [Darwin 25.2.0]
Apple M3 Pro, 1 CPU, 11 logical and 11 physical cores
.NET SDK 10.0.101
  [Host]    : .NET 10.0.1 (10.0.1, 10.0.125.57005), Arm64 RyuJIT armv8.0-a
  .NET 10.0 : .NET 10.0.1 (10.0.1, 10.0.125.57005), Arm64 RyuJIT armv8.0-a
  .NET 8.0  : .NET 8.0.17 (8.0.17, 8.0.1725.26602), Arm64 RyuJIT armv8.0-a
  .NET 9.0  : .NET 9.0.10 (9.0.10, 9.0.1025.47515), Arm64 RyuJIT armv8.0-a


```
| Method           | Job       | Runtime   | Mean     | Error   | StdDev  | Gen0   | Gen1   | Allocated |
|----------------- |---------- |---------- |---------:|--------:|--------:|-------:|-------:|----------:|
| RenderableToAnsi | .NET 10.0 | .NET 10.0 | 786.6 ns | 1.87 ns | 1.75 ns | 0.3662 | 0.0010 |   2.99 KB |
| RenderableToAnsi | .NET 8.0  | .NET 8.0  | 897.3 ns | 2.21 ns | 1.96 ns | 0.3815 | 0.0010 |   3.12 KB |
| RenderableToAnsi | .NET 9.0  | .NET 9.0  | 935.2 ns | 3.13 ns | 2.77 ns | 0.3700 | 0.0010 |   3.02 KB |


================================================
FILE: src/Benchmarks/BenchmarkDotNet.Artifacts/results/Benchmarks.RenderBenchmarks-report-github.md
================================================
```

BenchmarkDotNet v0.15.8, macOS Tahoe 26.2 (25C56) [Darwin 25.2.0]
Apple M3 Pro, 1 CPU, 11 logical and 11 physical cores
.NET SDK 10.0.101
  [Host]    : .NET 10.0.1 (10.0.1, 10.0.125.57005), Arm64 RyuJIT armv8.0-a
  .NET 10.0 : .NET 10.0.1 (10.0.1, 10.0.125.57005), Arm64 RyuJIT armv8.0-a
  .NET 8.0  : .NET 8.0.17 (8.0.17, 8.0.1725.26602), Arm64 RyuJIT armv8.0-a
  .NET 9.0  : .NET 9.0.10 (9.0.10, 9.0.1025.47515), Arm64 RyuJIT armv8.0-a


```
| Method | Job       | Runtime   | Mean     | Error   | StdDev  | Gen0   | Gen1   | Allocated |
|------- |---------- |---------- |---------:|--------:|--------:|-------:|-------:|----------:|
| Render | .NET 10.0 | .NET 10.0 | 723.8 ns | 4.00 ns | 3.74 ns | 0.2956 | 0.0124 |   2.42 KB |
| Render | .NET 8.0  | .NET 8.0  | 842.7 ns | 9.63 ns | 8.54 ns | 0.3119 | 0.0124 |   2.55 KB |
| Render | .NET 9.0  | .NET 9.0  | 859.7 ns | 6.40 ns | 4.99 ns | 0.3004 | 0.0124 |   2.46 KB |


================================================
FILE: src/Benchmarks/Benchmarks.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
    <IsPackable>true</IsPackable>
    <IsAotCompatible>true</IsAotCompatible>
    <IsPackable>false</IsPackable>
    <ImplicitUsings>true</ImplicitUsings>
    <GenerateDocumentationFile>false</GenerateDocumentationFile>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="BenchmarkDotNet" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\Spectre.Console\Spectre.Console.csproj" />
  </ItemGroup>

</Project>


================================================
FILE: src/Benchmarks/EmojiBenchmarks.cs
================================================
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Jobs;
using Spectre.Console;

namespace Benchmarks;

[MemoryDiagnoser]
[SimpleJob(RuntimeMoniker.Net10_0)]
public class EmojiBenchmarks
{
    [Benchmark]
    public void Replace_NoEmoji()
    {
        Emoji.Replace("Hello Spectre.Console!");
    }

    [Benchmark]
    public void Replace_NoEmoji_ButColon()
    {
        Emoji.Replace("https://spectreconsole.net");
    }

    [Benchmark]
    public void Replace_Emoji()
    {
        Emoji.Replace("Hello :ghost:.Console!");
    }
}

================================================
FILE: src/Benchmarks/MarkupBenchmarks.cs
================================================
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Jobs;
using Spectre.Console;

namespace Benchmarks;

[MemoryDiagnoser]
[SimpleJob(RuntimeMoniker.Net10_0)]
public class MarkupBenchmarks
{
    private const string Input = "[yellow]Hello [italic][link=https://spectreconsole.net]Spectre.Console Docs[/][/]![/]";

    [Benchmark]
    public void Markup_Constructor()
    {
        _ = new Markup(Input);
    }

    [Benchmark]
    public void AnsiMarkup_Parse()
    {
        AnsiMarkup.Parse(Input);
    }
}

================================================
FILE: src/Benchmarks/ParagraphBenchmarks.cs
================================================
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Jobs;
using Spectre.Console;

namespace Benchmarks;

[MemoryDiagnoser]
[SimpleJob(RuntimeMoniker.Net10_0)]
public class ParagraphBenchmarks
{
    private const string TextOneLine = "This string is all on one line.";
    private const string TextMultiLine = "This string\nhas multiple\nlines.";

    public static IEnumerable<object[]> Arguments => [
        [TextOneLine],
        [TextMultiLine],
    ];

    [Benchmark]
    [ArgumentsSource(nameof(Arguments))]
    public void Append(string text)
    {
        new Paragraph().Append(text);
    }
}

================================================
FILE: src/Benchmarks/Program.cs
================================================
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Jobs;
using BenchmarkDotNet.Running;
using Spectre.Console;
using Spectre.Console.Rendering;

namespace Benchmarks;

public static class Program
{
    public static int Main(string[] args)
    {
        BenchmarkRunner.Run(typeof(Program).Assembly);
        return 0;
    }
}

[MemoryDiagnoser]
[SimpleJob(RuntimeMoniker.Net80)]
[SimpleJob(RuntimeMoniker.Net90)]
[SimpleJob(RuntimeMoniker.Net10_0)]
public class RenderBenchmarks
{
    private IAnsiConsole _console = null!;
    private IRenderable _renderable = null!;

    [GlobalSetup]
    public void Setup()
    {
        _console =
            AnsiConsole.Create(new AnsiConsoleSettings
            {
                Ansi = AnsiSupport.Detect,
                ColorSystem = ColorSystemSupport.TrueColor,
                Out = new AnsiConsoleOutput(new StringWriter()),
                Interactive = InteractionSupport.No,
                EnvironmentVariables = null
            });

        _renderable = new Markup("[yellow]Hello[/] [blue]World[/]");
    }

    [Benchmark]
    public void Render() => _console.Write(_renderable);
}

[MemoryDiagnoser]
[SimpleJob(RuntimeMoniker.Net80)]
[SimpleJob(RuntimeMoniker.Net90)]
[SimpleJob(RuntimeMoniker.Net10_0)]
public class AnsiBenchmarks
{
    private IAnsiConsole _console = null!;
    private IRenderable _renderable = null!;

    [GlobalSetup]
    public void Setup()
    {
        _console =
            AnsiConsole.Create(new AnsiConsoleSettings
            {
                Ansi = AnsiSupport.Detect,
                ColorSystem = ColorSystemSupport.TrueColor,
                Out = new AnsiConsoleOutput(new StringWriter()),
                Interactive = InteractionSupport.No,
                EnvironmentVariables = null
            });

        _renderable = new Markup("[yellow]Hello[/] [blue]World[/]");
    }

    [Benchmark]
    public void RenderableToAnsi() => _console.ToAnsi(_renderable);
}

================================================
FILE: src/Directory.Build.props
================================================
<Project>
  <PropertyGroup Label="Settings">
    <Deterministic>true</Deterministic>
    <LangVersion>14</LangVersion>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>embedded</DebugType>
    <PublishRepositoryUrl>true</PublishRepositoryUrl>
    <EmbedUntrackedSources>true</EmbedUntrackedSources>
    <MinVerSkip Condition="'$(Configuration)' == 'Debug'">true</MinVerSkip>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <IsPackable>false</IsPackable>
    <Nullable>enable</Nullable>
    <NoWarn>$(NoWarn);SA1633</NoWarn>
    <SignAssembly>true</SignAssembly>
    <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)\..\resources\spectre.snk</AssemblyOriginatorKeyFile>
    <PublicKey>00240000048000009400000006020000002400005253413100040000010001006146d3789d31477cf4a3b508dcf772ff9ccad8613f6bd6b17b9c4a960a7a7b551ecd22e4f4119ced70ee8bbdf3ca0a117c99fd6248c16255ea9033110c2233d42e74e81bf4f3f7eb09bfe8b53ad399d957514f427171a86f5fe9fe0014be121d571c80c4a0cfc3531bdbf5a2900d936d93f2c94171b9134f7644a1ac3612a0d0</PublicKey>
    <PolyArgumentExceptions>true</PolyArgumentExceptions>
  </PropertyGroup>

  <!-- Disable nullability for netstandard2.0 since polyfills are not -->
  <!-- working correctly with nullability analysis. -->
  <!-- This is no big deal since nullability is checked for other TFMs. -->
  <PropertyGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
    <Nullable>disable</Nullable>
    <NoWarn>$(NoWarn);CS8632</NoWarn>
  </PropertyGroup>

  <PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
    <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
  </PropertyGroup>

  <ItemGroup Condition="$(IsPackable)">
    <None Include="$(MSBuildThisFileDirectory)../resources/nuget/logo.png">
      <Pack>true</Pack>
      <PackagePath>\</PackagePath>
      <Link>Properties/Package/Logo.png</Link>
    </None>
    <None Include="$(MSBuildThisFileDirectory)../resources/nuget/$(AssemblyName).md">
      <Pack>true</Pack>
      <PackagePath>\README.md</PackagePath>
      <Link>Properties/Package/README.md</Link>
    </None>
  </ItemGroup>

  <PropertyGroup>
    <Description>A library that makes it easier to create beautiful console applications.</Description>
    <Copyright>Patrik Svensson, Phil Scott, Nils Andresen, Cédric Luthi, Frank Ray</Copyright>
    <Authors>Patrik Svensson, Phil Scott, Nils Andresen, Cédric Luthi, Frank Ray</Authors>
    <RepositoryType>git</RepositoryType>
    <RepositoryUrl>https://github.com/spectreconsole/spectre.console</RepositoryUrl>
    <PackageIcon>logo.png</PackageIcon>
    <PackageReadmeFile>README.md</PackageReadmeFile>
    <PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>
    <PackageProjectUrl>https://github.com/spectreconsole/spectre.console</PackageProjectUrl>
    <PackageLicenseExpression>MIT</PackageLicenseExpression>
    <PackageReleaseNotes>https://github.com/spectreconsole/spectre.console/releases</PackageReleaseNotes>
  </PropertyGroup>

  <ItemGroup Condition="'$(UseBuildTimeTools)' != 'false'">
    <PackageReference Include="MinVer" PrivateAssets="All" />
    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
    <PackageReference Include="Roslynator.Analyzers">
      <PrivateAssets>All</PrivateAssets>
    </PackageReference>
  </ItemGroup>
</Project>

================================================
FILE: src/Directory.Packages.props
================================================
<Project>
  <PropertyGroup>
    <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
  </PropertyGroup>
  <ItemGroup>
    <PackageVersion Include="Backport.System.Threading.Lock" Version="3.1.6" />
    <PackageVersion Include="BenchmarkDotNet" Version="0.15.8" />
    <PackageVersion Include="IsExternalInit" Version="1.0.3" />
    <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
    <PackageVersion Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" Version="10.0.201" />
    <PackageVersion Include="MinVer" PrivateAssets="All" Version="7.0.0" />
    <PackageVersion Include="Newtonsoft.Json" Version="13.0.4" />
    <PackageVersion Include="Polyfill" Version="9.21.0" />
    <PackageVersion Include="Roslynator.Analyzers" PrivateAssets="All" Version="4.15.0" />
    <PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.3.0" />
    <PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0" />
    <PackageVersion Include="System.Text.Json" Version="10.0.5" />
    <PackageVersion Include="Shouldly" Version="4.3.0" />
    <PackageVersion Include="SixLabors.ImageSharp" Version="3.1.12" />
    <PackageVersion Include="Spectre.Verify.Extensions" Version="28.16.0" />
    <PackageVersion Include="Microsoft.Bcl.TimeProvider" Version="10.0.5" />
    <PackageVersion Include="System.Memory" Version="4.6.3" />
    <PackageVersion Include="Verify.Xunit" Version="31.9.4" />
    <PackageVersion Include="Wcwidth.Sources" Version="4.0.1" />
    <PackageVersion Include="xunit" Version="2.9.3" />
    <PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageVersion>
  </ItemGroup>
</Project>


================================================
FILE: src/Extensions/Spectre.Console.ImageSharp/CanvasImage.cs
================================================
using System;
using System.Collections.Generic;
using System.IO;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Transforms;
using Spectre.Console.Rendering;

namespace Spectre.Console;

/// <summary>
/// Represents a renderable image.
/// </summary>
public sealed class CanvasImage : Renderable
{
    private static readonly IResampler _defaultResampler = KnownResamplers.Bicubic;

    /// <summary>
    /// Gets the image width.
    /// </summary>
    public int Width => Image.Width;

    /// <summary>
    /// Gets the image height.
    /// </summary>
    public int Height => Image.Height;

    /// <summary>
    /// Gets or sets the render width of the canvas.
    /// </summary>
    public int? MaxWidth { get; set; }

    /// <summary>
    /// Gets or sets the render width of the canvas.
    /// </summary>
    [Obsolete("Not used anymore. Will be removed in future update.")]
    public int PixelWidth { get; set; } = 2;

    /// <summary>
    /// Gets or sets the <see cref="IResampler"/> that should
    /// be used when scaling the image. Defaults to bicubic sampling.
    /// </summary>
    public IResampler? Resampler { get; set; }

    internal SixLabors.ImageSharp.Image<Rgba32> Image { get; }

    /// <summary>
    /// Initializes a new instance of the <see cref="CanvasImage"/> class.
    /// </summary>
    /// <param name="filename">The image filename.</param>
    public CanvasImage(string filename)
    {
        Image = SixLabors.ImageSharp.Image.Load<Rgba32>(filename);
    }

    /// <summary>
    /// Initializes a new instance of the <see cref="CanvasImage"/> class.
    /// </summary>
    /// <param name="data">Buffer containing an image.</param>
    public CanvasImage(ReadOnlySpan<byte> data)
    {
        Image = SixLabors.ImageSharp.Image.Load<Rgba32>(data);
    }

    /// <summary>
    /// Initializes a new instance of the <see cref="CanvasImage"/> class.
    /// </summary>
    /// <param name="data">Stream containing an image.</param>
    public CanvasImage(Stream data)
    {
        Image = SixLabors.ImageSharp.Image.Load<Rgba32>(data);
    }

    /// <inheritdoc/>
    protected override Measurement Measure(RenderOptions options, int maxWidth)
    {
        var pixelWidth = options.Unicode ? 1 : 2;
        var width = MaxWidth ?? Width;
        if (maxWidth < width * pixelWidth)
        {
            return new Measurement(maxWidth, maxWidth);
        }

        return new Measurement(width * pixelWidth, width * pixelWidth);
    }

    /// <inheritdoc/>
    protected override IEnumerable<Segment> Render(RenderOptions options, int maxWidth)
    {
        var image = Image;
        var width = Width;
        var height = Height;
        var pixelWidth = options.Unicode ? 1 : 2;

        // Got a max width?
        if (MaxWidth != null)
        {
            height = (int)(height * ((float)MaxWidth.Value) / Width);
            width = MaxWidth.Value;
        }

        // Exceed the max width when we take pixel width into account?
        if (width * pixelWidth > maxWidth)
        {
            height = (int)(height * (maxWidth / (float)(width * pixelWidth)));
            width = maxWidth / pixelWidth;
        }

        // Need to rescale the pixel buffer?
        if (width != Width || height != Height)
        {
            var resampler = Resampler ?? _defaultResampler;
            image = image.Clone(); // Clone the original image
            image.Mutate(i => i.Resize(width, height, resampler));
        }

        var canvas = new Canvas(width, height)
        {
            MaxWidth = MaxWidth,
            Scale = false,
        };

        for (var y = 0; y < image.Height; y++)
        {
            for (var x = 0; x < image.Width; x++)
            {
                if (image[x, y].A == 0)
                {
                    continue;
                }

                canvas.SetPixel(x, y, new Color(
                    image[x, y].R, image[x, y].G, image[x, y].B));
            }
        }

        return ((IRenderable)canvas).Render(options, maxWidth);
    }
}

================================================
FILE: src/Extensions/Spectre.Console.ImageSharp/CanvasImageExtensions.cs
================================================
using System;
using SixLabors.ImageSharp.Processing;

namespace Spectre.Console;

/// <summary>
/// Contains extension methods for <see cref="CanvasImage"/>.
/// </summary>
public static class CanvasImageExtensions
{
    /// <summary>
    /// Sets the maximum width of the rendered image.
    /// </summary>
    /// <param name="image">The canvas image.</param>
    /// <param name="maxWidth">The maximum width.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static CanvasImage MaxWidth(this CanvasImage image, int? maxWidth)
    {
        ArgumentNullException.ThrowIfNull(image);

        image.MaxWidth = maxWidth;
        return image;
    }

    /// <summary>
    /// Disables the maximum width of the rendered image.
    /// </summary>
    /// <param name="image">The canvas image.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static CanvasImage NoMaxWidth(this CanvasImage image)
    {
        ArgumentNullException.ThrowIfNull(image);

        image.MaxWidth = null;
        return image;
    }

    /// <summary>
    /// Sets the pixel width.
    /// </summary>
    /// <param name="image">The canvas image.</param>
    /// <param name="width">The pixel width.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    [Obsolete("Not used anymore. Will be removed in future update.")]
    public static CanvasImage PixelWidth(this CanvasImage image, int width)
    {
        ArgumentNullException.ThrowIfNull(image);

        image.PixelWidth = width;
        return image;
    }

    /// <summary>
    /// Mutates the underlying image.
    /// </summary>
    /// <param name="image">The canvas image.</param>
    /// <param name="action">The action that mutates the underlying image.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static CanvasImage Mutate(this CanvasImage image, Action<IImageProcessingContext> action)
    {
        ArgumentNullException.ThrowIfNull(image);

        ArgumentNullException.ThrowIfNull(action);

        image.Image.Mutate(action);
        return image;
    }

    /// <summary>
    /// Uses a bicubic sampler that implements the bicubic kernel algorithm W(x).
    /// </summary>
    /// <param name="image">The canvas image.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static CanvasImage BicubicResampler(this CanvasImage image)
    {
        ArgumentNullException.ThrowIfNull(image);

        image.Resampler = KnownResamplers.Bicubic;
        return image;
    }

    /// <summary>
    /// Uses a bilinear sampler. This interpolation algorithm
    /// can be used where perfect image transformation with pixel matching is impossible,
    /// so that one can calculate and assign appropriate intensity values to pixels.
    /// </summary>
    /// <param name="image">The canvas image.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static CanvasImage BilinearResampler(this CanvasImage image)
    {
        ArgumentNullException.ThrowIfNull(image);

        image.Resampler = KnownResamplers.Triangle;
        return image;
    }

    /// <summary>
    /// Uses a Nearest-Neighbour sampler that implements the nearest neighbor algorithm.
    /// This uses a very fast, unscaled filter which will select the closest pixel to
    /// the new pixels position.
    /// </summary>
    /// <param name="image">The canvas image.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static CanvasImage NearestNeighborResampler(this CanvasImage image)
    {
        ArgumentNullException.ThrowIfNull(image);

        image.Resampler = KnownResamplers.NearestNeighbor;
        return image;
    }
}

================================================
FILE: src/Extensions/Spectre.Console.ImageSharp/Spectre.Console.ImageSharp.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
    <IsPackable>true</IsPackable>
    <Description>A library that extends Spectre.Console with ImageSharp superpowers.</Description>
  </PropertyGroup>
  <PropertyGroup>
    <IsAotCompatible Condition="'$(TargetFramework)' != 'netstandard2.0'" >true</IsAotCompatible>
    <PolySharpIncludeRuntimeSupportedAttributes>true</PolySharpIncludeRuntimeSupportedAttributes>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="SixLabors.ImageSharp" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\..\Spectre.Console\Spectre.Console.csproj" />
  </ItemGroup>

</Project>


================================================
FILE: src/Extensions/Spectre.Console.Json/IJsonParser.cs
================================================
namespace Spectre.Console.Json;

/// <summary>
/// Represents a JSON parser.
/// </summary>
public interface IJsonParser
{
    /// <summary>
    /// Parses the provided JSON into an abstract syntax tree.
    /// </summary>
    /// <param name="json">The JSON to parse.</param>
    /// <returns>An <see cref="JsonSyntax"/> instance.</returns>
    JsonSyntax Parse(string json);
}

================================================
FILE: src/Extensions/Spectre.Console.Json/JsonBuilder.cs
================================================
namespace Spectre.Console.Json;

internal sealed class JsonBuilderContext
{
    public Paragraph Paragraph { get; }
    public int Level { get; set; }
    public string Indentation { get; set; }
    public JsonTextStyles Styling { get; }

    public JsonBuilderContext(
        JsonTextStyles styling, string indentation)
    {
        Paragraph = new Paragraph();
        Styling = styling;
        Indentation = indentation;
    }

    public void InsertIndentation()
    {
        for (var level = 0; level < Level; level++)
        {
            Paragraph.Append(Indentation);
        }
    }
}

internal sealed class JsonBuilder : JsonSyntaxVisitor<JsonBuilderContext>
{
    public static JsonBuilder Shared { get; } = new JsonBuilder();

    public override void VisitObject(JsonObject syntax, JsonBuilderContext context)
    {
        context.Paragraph.Append("{", context.Styling.BracesStyle);
        context.Paragraph.Append("\n");
        context.Level++;

        foreach (var (_, _, last, property) in syntax.Members.Enumerate())
        {
            context.InsertIndentation();
            property.Accept(this, context);

            if (!last)
            {
                context.Paragraph.Append(",", context.Styling.CommaStyle);
            }

            context.Paragraph.Append("\n");
        }

        context.Level--;
        context.InsertIndentation();
        context.Paragraph.Append("}", context.Styling.BracesStyle);
    }

    public override void VisitArray(JsonArray syntax, JsonBuilderContext context)
    {
        context.Paragraph.Append("[", context.Styling.BracketsStyle);
        context.Paragraph.Append("\n");
        context.Level++;

        foreach (var (_, _, last, item) in syntax.Items.Enumerate())
        {
            context.InsertIndentation();
            item.Accept(this, context);

            if (!last)
            {
                context.Paragraph.Append(",", context.Styling.CommaStyle);
            }

            context.Paragraph.Append("\n");
        }

        context.Level--;
        context.InsertIndentation();
        context.Paragraph.Append("]", context.Styling.BracketsStyle);
    }

    public override void VisitMember(JsonMember syntax, JsonBuilderContext context)
    {
        context.Paragraph.Append(syntax.Name, context.Styling.MemberStyle);
        context.Paragraph.Append(":", context.Styling.ColonStyle);
        context.Paragraph.Append(" ");

        syntax.Value.Accept(this, context);
    }

    public override void VisitNumber(JsonNumber syntax, JsonBuilderContext context)
    {
        context.Paragraph.Append(syntax.Lexeme, context.Styling.NumberStyle);
    }

    public override void VisitString(JsonString syntax, JsonBuilderContext context)
    {
        context.Paragraph.Append(syntax.Lexeme, context.Styling.StringStyle);
    }

    public override void VisitBoolean(JsonBoolean syntax, JsonBuilderContext context)
    {
        context.Paragraph.Append(syntax.Lexeme, context.Styling.BooleanStyle);
    }

    public override void VisitNull(JsonNull syntax, JsonBuilderContext context)
    {
        context.Paragraph.Append(syntax.Lexeme, context.Styling.NullStyle);
    }
}

================================================
FILE: src/Extensions/Spectre.Console.Json/JsonParser.cs
================================================
namespace Spectre.Console.Json;

internal sealed class JsonParser : IJsonParser
{
    public static JsonParser Shared { get; } = new JsonParser();

    public JsonSyntax Parse(string json)
    {
        try
        {
            var tokens = JsonTokenizer.Tokenize(json);
            var reader = new JsonTokenReader(tokens);
            return ParseElement(reader);
        }
        catch
        {
            throw new InvalidOperationException("Invalid JSON");
        }
    }

    private static JsonSyntax ParseElement(JsonTokenReader reader)
    {
        return ParseValue(reader);
    }

    private static List<JsonSyntax> ParseElements(JsonTokenReader reader)
    {
        var members = new List<JsonSyntax>();

        while (!reader.Eof)
        {
            members.Add(ParseElement(reader));

            if (reader.Peek()?.Type != JsonTokenType.Comma)
            {
                break;
            }

            reader.Consume(JsonTokenType.Comma);
        }

        return members;
    }

    private static JsonSyntax ParseValue(JsonTokenReader reader)
    {
        var current = reader.Peek();
        if (current == null)
        {
            throw new InvalidOperationException("Could not parse value (EOF)");
        }

        if (current.Type == JsonTokenType.LeftBrace)
        {
            return ParseObject(reader);
        }

        if (current.Type == JsonTokenType.LeftBracket)
        {
            return ParseArray(reader);
        }

        if (current.Type == JsonTokenType.Number)
        {
            reader.Consume(JsonTokenType.Number);
            return new JsonNumber(current.Lexeme);
        }

        if (current.Type == JsonTokenType.String)
        {
            reader.Consume(JsonTokenType.String);
            return new JsonString(current.Lexeme);
        }

        if (current.Type == JsonTokenType.Boolean)
        {
            reader.Consume(JsonTokenType.Boolean);
            return new JsonBoolean(current.Lexeme);
        }

        if (current.Type == JsonTokenType.Null)
        {
            reader.Consume(JsonTokenType.Null);
            return new JsonNull(current.Lexeme);
        }

        throw new InvalidOperationException($"Unknown value token: {current.Type}");
    }

    private static JsonSyntax ParseObject(JsonTokenReader reader)
    {
        reader.Consume(JsonTokenType.LeftBrace);

        var result = new JsonObject();

        if (reader.Peek()?.Type != JsonTokenType.RightBrace)
        {
            result.Members.AddRange(ParseMembers(reader));
        }

        reader.Consume(JsonTokenType.RightBrace);
        return result;
    }

    private static JsonSyntax ParseArray(JsonTokenReader reader)
    {
        reader.Consume(JsonTokenType.LeftBracket);

        var result = new JsonArray();

        if (reader.Peek()?.Type != JsonTokenType.RightBracket)
        {
            result.Items.AddRange(ParseElements(reader));
        }

        reader.Consume(JsonTokenType.RightBracket);
        return result;
    }

    private static List<JsonMember> ParseMembers(JsonTokenReader reader)
    {
        var members = new List<JsonMember>();

        while (!reader.Eof)
        {
            members.Add(ParseMember(reader));

            if (reader.Peek()?.Type != JsonTokenType.Comma)
            {
                break;
            }

            reader.Consume(JsonTokenType.Comma);
        }

        return members;
    }

    private static JsonMember ParseMember(JsonTokenReader reader)
    {
        var name = reader.Consume(JsonTokenType.String);
        reader.Consume(JsonTokenType.Colon);
        var value = ParseElement(reader);
        return new JsonMember(name.Lexeme, value);
    }
}

================================================
FILE: src/Extensions/Spectre.Console.Json/JsonText.cs
================================================
namespace Spectre.Console.Json;

/// <summary>
/// A renderable piece of JSON text.
/// </summary>
public sealed class JsonText : JustInTimeRenderable
{
    private readonly string _json;
    private JsonSyntax? _syntax;

    /// <summary>
    /// Gets or sets the style used for braces.
    /// </summary>
    public Style? BracesStyle { get; set; }

    /// <summary>
    /// Gets or sets the style used for brackets.
    /// </summary>
    public Style? BracketsStyle { get; set; }

    /// <summary>
    /// Gets or sets the style used for member names.
    /// </summary>
    public Style? MemberStyle { get; set; }

    /// <summary>
    /// Gets or sets the style used for colons.
    /// </summary>
    public Style? ColonStyle { get; set; }

    /// <summary>
    /// Gets or sets the style used for commas.
    /// </summary>
    public Style? CommaStyle { get; set; }

    /// <summary>
    /// Gets or sets the style used for string literals.
    /// </summary>
    public Style? StringStyle { get; set; }

    /// <summary>
    /// Gets or sets the style used for number literals.
    /// </summary>
    public Style? NumberStyle { get; set; }

    /// <summary>
    /// Gets or sets the style used for boolean literals.
    /// </summary>
    public Style? BooleanStyle { get; set; }

    /// <summary>
    /// Gets or sets the style used for <c>null</c> literals.
    /// </summary>
    public Style? NullStyle { get; set; }

    /// <summary>
    /// Gets or sets the indentation.
    /// Defaults to three spaces.
    /// </summary>
    public string Indentation { get; set; } = "   ";

    /// <summary>
    /// Gets or sets the JSON parser.
    /// </summary>
    public IJsonParser? Parser
    {
        get;
        set
        {
            _syntax = null;
            field = value;
        }
    }

    /// <summary>
    /// Initializes a new instance of the <see cref="JsonText"/> class.
    /// </summary>
    /// <param name="json">The JSON to render.</param>
    public JsonText(string json)
    {
        _json = json ?? throw new ArgumentNullException(nameof(json));
    }

    /// <inheritdoc/>
    protected override IRenderable Build()
    {
        _syntax ??= (Parser ?? JsonParser.Shared).Parse(_json);

        var context = new JsonBuilderContext(
            new JsonTextStyles
            {
                BracesStyle = BracesStyle ?? Color.Grey,
                BracketsStyle = BracketsStyle ?? Color.Grey,
                MemberStyle = MemberStyle ?? Color.Blue,
                ColonStyle = ColonStyle ?? Color.Yellow,
                CommaStyle = CommaStyle ?? Color.Grey,
                StringStyle = StringStyle ?? Color.Red,
                NumberStyle = NumberStyle ?? Color.Green,
                BooleanStyle = BooleanStyle ?? Color.Green,
                NullStyle = NullStyle ?? Color.Grey,
            }, Indentation);

        _syntax.Accept(JsonBuilder.Shared, context);
        return context.Paragraph;
    }
}

/// <summary>
/// Contains extension methods for <see cref="JsonText"/>.
/// </summary>
public static class JsonTextExtensions
{
    /// <summary>
    /// Sets the style used for braces.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="style">The style to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText BracesStyle(this JsonText text, Style? style)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.BracesStyle = style;
        return text;
    }

    /// <summary>
    /// Sets the style used for brackets.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="style">The style to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText BracketStyle(this JsonText text, Style? style)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.BracketsStyle = style;
        return text;
    }

    /// <summary>
    /// Sets the style used for member names.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="style">The style to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText MemberStyle(this JsonText text, Style? style)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.MemberStyle = style;
        return text;
    }

    /// <summary>
    /// Sets the style used for colons.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="style">The style to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText ColonStyle(this JsonText text, Style? style)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.ColonStyle = style;
        return text;
    }

    /// <summary>
    /// Sets the style used for commas.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="style">The style to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText CommaStyle(this JsonText text, Style? style)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.CommaStyle = style;
        return text;
    }

    /// <summary>
    /// Sets the style used for string literals.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="style">The style to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText StringStyle(this JsonText text, Style? style)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.StringStyle = style;
        return text;
    }

    /// <summary>
    /// Sets the style used for number literals.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="style">The style to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText NumberStyle(this JsonText text, Style? style)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.NumberStyle = style;
        return text;
    }

    /// <summary>
    /// Sets the style used for boolean literals.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="style">The style to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText BooleanStyle(this JsonText text, Style? style)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.BooleanStyle = style;
        return text;
    }

    /// <summary>
    /// Sets the style used for <c>null</c> literals.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="style">The style to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText NullStyle(this JsonText text, Style? style)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.NullStyle = style;
        return text;
    }

    /// <summary>
    /// Sets the color used for braces.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="color">The color to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText BracesColor(this JsonText text, Color color)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.BracesStyle = new Style(color);
        return text;
    }

    /// <summary>
    /// Sets the color used for brackets.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="color">The color to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText BracketColor(this JsonText text, Color color)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.BracketsStyle = new Style(color);
        return text;
    }

    /// <summary>
    /// Sets the color used for member names.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="color">The color to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText MemberColor(this JsonText text, Color color)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.MemberStyle = new Style(color);
        return text;
    }

    /// <summary>
    /// Sets the color used for colons.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="color">The color to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText ColonColor(this JsonText text, Color color)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.ColonStyle = new Style(color);
        return text;
    }

    /// <summary>
    /// Sets the color used for commas.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="color">The color to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText CommaColor(this JsonText text, Color color)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.CommaStyle = new Style(color);
        return text;
    }

    /// <summary>
    /// Sets the color used for string literals.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="color">The color to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText StringColor(this JsonText text, Color color)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.StringStyle = new Style(color);
        return text;
    }

    /// <summary>
    /// Sets the color used for number literals.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="color">The color to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText NumberColor(this JsonText text, Color color)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.NumberStyle = new Style(color);
        return text;
    }

    /// <summary>
    /// Sets the color used for boolean literals.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="color">The color to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText BooleanColor(this JsonText text, Color color)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.BooleanStyle = new Style(color);
        return text;
    }

    /// <summary>
    /// Sets the color used for <c>null</c> literals.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="color">The color to set.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText NullColor(this JsonText text, Color color)
    {
        ArgumentNullException.ThrowIfNull(text);

        text.NullStyle = new Style(color);
        return text;
    }

    /// <summary>
    /// Sets the indentation.
    /// </summary>
    /// <param name="text">The JSON text instance.</param>
    /// <param name="indentation">The indentation.</param>
    /// <returns>The same instance so that multiple calls can be chained.</returns>
    public static JsonText Indentation(this JsonText text, string indentation = "   ")
    {
        ArgumentNullException.ThrowIfNull(text);

        text.Indentation = indentation;
        return text;
    }
}

================================================
FILE: src/Extensions/Spectre.Console.Json/JsonTextStyles.cs
================================================
namespace Spectre.Console.Json;

internal sealed class JsonTextStyles
{
    public Style? BracesStyle { get; set; }
    public Style? BracketsStyle { get; set; }
    public Style? MemberStyle { get; set; }
    public Style? ColonStyle { get; set; }
    public Style? CommaStyle { get; set; }
    public Style? StringStyle { get; set; }
    public Style? NumberStyle { get; set; }
    public Style? BooleanStyle { get; set; }
    public Style? NullStyle { get; set; }
}

================================================
FILE: src/Extensions/Spectre.Console.Json/JsonToken.cs
================================================
namespace Spectre.Console.Json;

internal sealed class JsonToken
{
    public JsonTokenType Type { get; }
    public string Lexeme { get; }

    public JsonToken(JsonTokenType type, string lexeme)
    {
        Type = type;
        Lexeme = lexeme ?? throw new ArgumentNullException(nameof(lexeme));
    }
}

================================================
FILE: src/Extensions/Spectre.Console.Json/JsonTokenReader.cs
================================================
namespace Spectre.Console.Json;

internal sealed class JsonTokenReader
{
    private readonly List<JsonToken> _reader;
    private readonly int _length;

    public int Position { get; private set; }
    public bool Eof => Position >= _length;

    public JsonTokenReader(List<JsonToken> tokens)
    {
        _reader = tokens;
        _length = tokens.Count;

        Position = 0;
    }

    public JsonToken Consume(JsonTokenType type)
    {
        var read = Read();
        if (read == null)
        {
            throw new InvalidOperationException("Could not read token");
        }

        if (read.Type != type)
        {
            throw new InvalidOperationException($"Expected '{type}' token, but found '{read.Type}'");
        }

        return read;
    }

    public JsonToken? Peek()
    {
        if (Eof)
        {
            return null;
        }

        return _reader[Position];
    }

    public JsonToken? Read()
    {
        if (Eof)
        {
            return null;
        }

        Position++;
        return _reader[Position - 1];
    }
}

================================================
FILE: src/Extensions/Spectre.Console.Json/JsonTokenType.cs
================================================
namespace Spectre.Console.Json;

internal enum JsonTokenType
{
    LeftBrace,
    RightBrace,
    LeftBracket,
    RightBracket,
    Colon,
    Comma,
    String,
    Number,
    Boolean,
    Null,
}

================================================
FILE: src/Extensions/Spectre.Console.Json/JsonTokenizer.cs
================================================
namespace Spectre.Console.Json;

internal static class JsonTokenizer
{
    private static readonly Dictionary<char, JsonTokenType> _typeLookup;
    private static readonly Dictionary<string, JsonTokenType> _keywords;
    private static readonly HashSet<char> _allowedEscapedChars;

    static JsonTokenizer()
    {
        _typeLookup = new Dictionary<char, JsonTokenType>
        {
            { '{', JsonTokenType.LeftBrace },
            { '}', JsonTokenType.RightBrace },
            { '[', JsonTokenType.LeftBracket },
            { ']', JsonTokenType.RightBracket },
            { ':', JsonTokenType.Colon },
            { ',', JsonTokenType.Comma },
        };

        _keywords = new Dictionary<string, JsonTokenType>
        {
            { "true", JsonTokenType.Boolean },
            { "false", JsonTokenType.Boolean },
            { "null", JsonTokenType.Null },
        };

        _allowedEscapedChars =
        [
            '\"', '\\', '/', 'b', 'f', 'n', 'r', 't', 'u'
        ];
    }

    public static List<JsonToken> Tokenize(string text)
    {
        var result = new List<JsonToken>();
        var buffer = new StringBuffer(text);

        while (!buffer.Eof)
        {
            var current = buffer.Peek();

            if (_typeLookup.TryGetValue(current, out var tokenType))
            {
                buffer.Read(); // Consume
                result.Add(new JsonToken(tokenType, current.ToString()));
                continue;
            }
            else if (current == '\"')
            {
                result.Add(ReadString(buffer));
            }
            else if (current == '-' || current.IsDigit())
            {
                result.Add(ReadNumber(buffer));
            }
            else if (current is ' ' or '\n' or '\r' or '\t')
            {
                buffer.Read(); // Consume
            }
            else if (char.IsLetter(current))
            {
                var accumulator = new StringBuilder();
                while (!buffer.Eof)
                {
                    current = buffer.Peek();
                    if (!char.IsLetter(current))
                    {
                        break;
                    }

                    buffer.Read(); // Consume
                    accumulator.Append(current);
                }

                if (!_keywords.TryGetValue(accumulator.ToString(), out var keyword))
                {
                    throw new InvalidOperationException($"Encountered invalid keyword '{keyword}'");
                }

                result.Add(new JsonToken(keyword, accumulator.ToString()));
            }
            else
            {
                throw new InvalidOperationException("Invalid token");
            }
        }

        return result;
    }

    private static JsonToken ReadString(StringBuffer buffer)
    {
        var accumulator = new StringBuilder();
        accumulator.Append(buffer.Expect('\"'));

        while (!buffer.Eof)
        {
            var current = buffer.Peek();
            if (current == '\"')
            {
                break;
            }
            else if (current == '\\')
            {
                buffer.Expect('\\');

                if (buffer.Eof)
                {
                    break;
                }

                current = buffer.Read();
                if (!_allowedEscapedChars.Contains(current))
                {
                    throw new InvalidOperationException("Invalid escape encountered");
                }

                accumulator.Append('\\').Append(current);
            }
            else
            {
                accumulator.Append(current);
                buffer.Read();
            }
        }

        if (buffer.Eof)
        {
            throw new InvalidOperationException("Unterminated string literal");
        }

        accumulator.Append(buffer.Expect('\"'));
        return new JsonToken(JsonTokenType.String, accumulator.ToString());
    }

    private static JsonToken ReadNumber(StringBuffer buffer)
    {
        var accumulator = new StringBuilder();

        // Minus?
        if (buffer.Peek() == '-')
        {
            buffer.Read();
            accumulator.Append("-");
        }

        // Digits
        var current = buffer.Peek();
        if (current.IsDigit(min: 1))
        {
            ReadDigits(buffer, accumulator, min: 1);
        }
        else if (current == '0')
        {
            accumulator.Append(buffer.Expect('0'));
        }
        else
        {
            throw new InvalidOperationException("Invalid number");
        }

        // Fractions
        current = buffer.Peek();
        if (current == '.')
        {
            accumulator.Append(buffer.Expect('.'));
            ReadDigits(buffer, accumulator);
        }

        // Exponent
        current = buffer.Peek();
        if (current is 'e' or 'E')
        {
            accumulator.Append(buffer.Read());

            current = buffer.Peek();
            if (current is '+' or '-')
            {
                accumulator.Append(buffer.Read());
            }

            ReadDigits(buffer, accumulator);
        }

        return new JsonToken(JsonTokenType.Number, accumulator.ToString());
    }

    private static void ReadDigits(StringBuffer buffer, StringBuilder accumulator, int min = 0)
    {
        while (!buffer.Eof)
        {
            var current = buffer.Peek();
            if (!current.IsDigit(min))
            {
                break;
            }

            buffer.Read(); // Consume
            accumulator.Append(current);
        }
    }
}

================================================
FILE: src/Extensions/Spectre.Console.Json/Properties/Usings.cs
================================================
global using System.Text;
global using Spectre.Console.Json.Syntax;
global using Spectre.Console.Rendering;

================================================
FILE: src/Extensions/Spectre.Console.Json/Spectre.Console.Json.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>net10.0;net9.0;net8.0;netstandard2.0</TargetFrameworks>
    <ImplicitUsings>true</ImplicitUsings>
    <IsPackable>true</IsPackable>
    <Description>A library that extends Spectre.Console with JSON superpowers.</Description>
  </PropertyGroup>
  <PropertyGroup>
    <IsAotCompatible Condition="'$(TargetFramework)' != 'netstandard2.0'" >true</IsAotCompatible>
    <PolySharpIncludeRuntimeSupportedAttributes>true</PolySharpIncludeRuntimeSupportedAttributes>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="..\..\Spectre.Console\Extensions\Bcl\CharExtensions.cs" Link="Internal\CharExtensions.cs" />
    <Compile Include="..\..\Spectre.Console\Extensions\Bcl\EnumerableExtensions.cs" Link="Internal\EnumerableExtensions.cs" />
    <Compile Include="..\..\Spectre.Console\Internal\Text\StringBuffer.cs" Link="Internal\StringBuffer.cs" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\..\Spectre.Console\Spectre.Console.csproj" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Polyfill" Condition="'$(TargetFramework)' == 'netstandard2.0'" PrivateAssets="all" />
  </ItemGroup>

</Project>


================================================
FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonArray.cs
================================================
namespace Spectre.Console.Json.Syntax;

/// <summary>
/// Represents an array in the JSON abstract syntax tree.
/// </summary>
public sealed class JsonArray : JsonSyntax
{
    /// <summary>
    /// Gets the array items.
    /// </summary>
    public List<JsonSyntax> Items { get; }

    /// <summary>
    /// Initializes a new instance of the <see cref="JsonArray"/> class.
    /// </summary>
    public JsonArray()
    {
        Items = [];
    }

    internal override void Accept<T>(JsonSyntaxVisitor<T> visitor, T context)
    {
        visitor.VisitArray(this, context);
    }
}

================================================
FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonBoolean.cs
================================================
namespace Spectre.Console.Json.Syntax;

/// <summary>
/// Represents a boolean literal in the JSON abstract syntax tree.
/// </summary>
public sealed class JsonBoolean : JsonSyntax
{
    /// <summary>
    /// Gets the lexeme.
    /// </summary>
    public string Lexeme { get; }

    /// <summary>
    /// Initializes a new instance of the <see cref="JsonBoolean"/> class.
    /// </summary>
    /// <param name="lexeme">The lexeme.</param>
    public JsonBoolean(string lexeme)
    {
        Lexeme = lexeme;
    }

    internal override void Accept<T>(JsonSyntaxVisitor<T> visitor, T context)
    {
        visitor.VisitBoolean(this, context);
    }
}

================================================
FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonMember.cs
================================================
namespace Spectre.Console.Json.Syntax;

/// <summary>
/// Represents a member in the JSON abstract syntax tree.
/// </summary>
public sealed class JsonMember : JsonSyntax
{
    /// <summary>
    /// Gets the member name.
    /// </summary>
    public string Name { get; }

    /// <summary>
    /// Gets the member value.
    /// </summary>
    public JsonSyntax Value { get; }

    /// <summary>
    /// Initializes a new instance of the <see cref="JsonMember"/> class.
    /// </summary>
    /// <param name="name">The name.</param>
    /// <param name="value">The value.</param>
    public JsonMember(string name, JsonSyntax value)
    {
        Name = name;
        Value = value;
    }

    internal override void Accept<T>(JsonSyntaxVisitor<T> visitor, T context)
    {
        visitor.VisitMember(this, context);
    }
}

================================================
FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonNull.cs
================================================
namespace Spectre.Console.Json.Syntax;

/// <summary>
/// Represents a null literal in the JSON abstract syntax tree.
/// </summary>
public sealed class JsonNull : JsonSyntax
{
    /// <summary>
    /// Gets the lexeme.
    /// </summary>
    public string Lexeme { get; }

    /// <summary>
    /// Initializes a new instance of the <see cref="JsonNull"/> class.
    /// </summary>
    /// <param name="lexeme">The lexeme.</param>
    public JsonNull(string lexeme)
    {
        Lexeme = lexeme;
    }

    internal override void Accept<T>(JsonSyntaxVisitor<T> visitor, T context)
    {
        visitor.VisitNull(this, context);
    }
}

================================================
FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonNumber.cs
================================================
namespace Spectre.Console.Json.Syntax;

internal sealed class JsonNumber : JsonSyntax
{
    public string Lexeme { get; }

    public JsonNumber(string lexeme)
    {
        Lexeme = lexeme;
    }

    internal override void Accept<T>(JsonSyntaxVisitor<T> visitor, T context)
    {
        visitor.VisitNumber(this, context);
    }
}

================================================
FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonObject.cs
================================================
namespace Spectre.Console.Json.Syntax;

/// <summary>
/// Represents an object in the JSON abstract syntax tree.
/// </summary>
public sealed class JsonObject : JsonSyntax
{
    /// <summary>
    /// Gets the object's members.
    /// </summary>
    public List<JsonMember> Members { get; }

    /// <summary>
    /// Initializes a new instance of the <see cref="JsonObject"/> class.
    /// </summary>
    public JsonObject()
    {
        Members = [];
    }

    internal override void Accept<T>(JsonSyntaxVisitor<T> visitor, T context)
    {
        visitor.VisitObject(this, context);
    }
}

================================================
FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonString.cs
================================================
namespace Spectre.Console.Json.Syntax;

/// <summary>
/// Represents a string literal in the JSON abstract syntax tree.
/// </summary>
public sealed class JsonString : JsonSyntax
{
    /// <summary>
    /// Gets the lexeme.
    /// </summary>
    public string Lexeme { get; }

    /// <summary>
    /// Initializes a new instance of the <see cref="JsonString"/> class.
    /// </summary>
    /// <param name="lexeme">The lexeme.</param>
    public JsonString(string lexeme)
    {
        Lexeme = lexeme;
    }

    internal override void Accept<T>(JsonSyntaxVisitor<T> visitor, T context)
    {
        visitor.VisitString(this, context);
    }
}

================================================
FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonSyntax.cs
================================================
namespace Spectre.Console.Json.Syntax;

/// <summary>
/// Represents a syntax node in the JSON abstract syntax tree.
/// </summary>
public abstract class JsonSyntax
{
    internal abstract void Accept<T>(JsonSyntaxVisitor<T> visitor, T context);
}

================================================
FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonSyntaxVisitor.cs
================================================
namespace Spectre.Console.Json.Syntax;

internal abstract class JsonSyntaxVisitor<T>
{
    public abstract void VisitObject(JsonObject syntax, T context);
    public abstract void VisitArray(JsonArray syntax, T context);
    public abstract void VisitMember(JsonMember syntax, T context);
    public abstract void VisitNumber(JsonNumber syntax, T context);
    public abstract void VisitString(JsonString syntax, T context);
    public abstract void VisitBoolean(JsonBoolean syntax, T context);
    public abstract void VisitNull(JsonNull syntax, T context);
}

================================================
FILE: src/Spectre.Console/AnsiConsole.Exceptions.cs
================================================
namespace Spectre.Console;

/// <summary>
/// A console capable of writing ANSI escape sequences.
/// </summary>
public static partial class AnsiConsole
{
    /// <summary>
    /// Writes an exception to the console.
    /// </summary>
    /// <param name="exception">The exception to write to the console.</param>
    /// <param name="format">The exception format options.</param>
    [RequiresDynamicCode(ExceptionFormatter.AotWarning)]
    public static void WriteException(Exception exception, ExceptionFormats format = ExceptionFormats.Default)
    {
        Console.WriteException(exception, format);
    }

    /// <summary>
    /// Writes an exception to the console.
    /// </summary>
    /// <param name="exception">The exception to write to the console.</param>
    /// <param name="settings">The exception settings.</param>
    [RequiresDynamicCode(ExceptionFormatter.AotWarning)]
    public static void WriteException(Exception exception, ExceptionSettings settings)
    {
        Console.WriteException(exception, settings);
    }
}

================================================
FILE: src/Spectre.Console/AnsiConsole.Live.cs
================================================
namespace Spectre.Console;

/// <summary>
/// A console capable of writing ANSI escape sequences.
/// </summary>
public static partial class AnsiConsole
{
    /// <summary>
    /// Creates a new <see cref="LiveDisplay"/> instance.
    /// </summary>
    /// <param name="target">The target renderable to update.</param>
    /// <returns>A <see cref="LiveDisplay"/> instance.</returns>
    public static LiveDisplay Live(IRenderable target)
    {
        return Console.Live(target);
    }
}

================================================
FILE: src/Spectre.Console/AnsiConsole.Markup.cs
================================================
namespace Spectre.Console;

/// <summary>
/// A console capable of writing ANSI escape sequences.
/// </summary>
public static partial class AnsiConsole
{
    /// <summary>
    /// Writes the specified markup to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void Markup(string value)
    {
        Console.Markup(value);
    }

    /// <summary>
    /// Writes the specified markup to the console.
    /// </summary>
    /// <param name="format">A composite format string.</param>
    /// <param name="args">An array of objects to write.</param>
    public static void Markup(string format, params object[] args)
    {
        Console.Markup(format, args);
    }

    /// <summary>
    /// Writes the specified markup to the console.
    /// <para/>
    /// All interpolation holes which contain a string are automatically escaped.
    /// </summary>
    /// <example>
    /// <code>
    /// string input = args[0];
    /// string output = Process(input);
    /// AnsiConsole.MarkupInterpolated($"[blue]{input}[/] -> [green]{output}[/]");
    /// </code>
    /// </example>
    /// <param name="value">The interpolated string value to write.</param>
    public static void MarkupInterpolated(FormattableString value)
    {
        Console.MarkupInterpolated(value);
    }

    /// <summary>
    /// Writes the specified markup to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="format">A composite format string.</param>
    /// <param name="args">An array of objects to write.</param>
    public static void Markup(IFormatProvider provider, string format, params object[] args)
    {
        Console.Markup(provider, format, args);
    }

    /// <summary>
    /// Writes the specified markup to the console.
    /// <para/>
    /// All interpolation holes which contain a string are automatically escaped.
    /// </summary>
    /// <example>
    /// <code>
    /// string input = args[0];
    /// string output = Process(input);
    /// AnsiConsole.MarkupInterpolated(CultureInfo.InvariantCulture, $"[blue]{input}[/] -> [green]{output}[/]");
    /// </code>
    /// </example>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The interpolated string value to write.</param>
    public static void MarkupInterpolated(IFormatProvider provider, FormattableString value)
    {
        Console.MarkupInterpolated(provider, value);
    }

    /// <summary>
    /// Writes the specified markup, followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void MarkupLine(string value)
    {
        Console.MarkupLine(value);
    }

    /// <summary>
    /// Writes the specified markup, followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="format">A composite format string.</param>
    /// <param name="args">An array of objects to write.</param>
    public static void MarkupLine(string format, params object[] args)
    {
        Console.MarkupLine(format, args);
    }

    /// <summary>
    /// Writes the specified markup, followed by the current line terminator, to the console.
    /// <para/>
    /// All interpolation holes which contain a string are automatically escaped.
    /// </summary>
    /// <example>
    /// <code>
    /// string input = args[0];
    /// string output = Process(input);
    /// AnsiConsole.MarkupLineInterpolated($"[blue]{input}[/] -> [green]{output}[/]");
    /// </code>
    /// </example>
    /// <param name="value">The interpolated string value to write.</param>
    public static void MarkupLineInterpolated(FormattableString value)
    {
        Console.MarkupLineInterpolated(value);
    }

    /// <summary>
    /// Writes the specified markup, followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="format">A composite format string.</param>
    /// <param name="args">An array of objects to write.</param>
    public static void MarkupLine(IFormatProvider provider, string format, params object[] args)
    {
        Console.MarkupLine(provider, format, args);
    }

    /// <summary>
    /// Writes the specified markup, followed by the current line terminator, to the console.
    /// <para/>
    /// All interpolation holes which contain a string are automatically escaped.
    /// </summary>
    /// <example>
    /// <code>
    /// string input = args[0];
    /// string output = Process(input);
    /// AnsiConsole.MarkupLineInterpolated(CultureInfo.InvariantCulture, $"[blue]{input}[/] -> [green]{output}[/]");
    /// </code>
    /// </example>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The interpolated string value to write.</param>
    public static void MarkupLineInterpolated(IFormatProvider provider, FormattableString value)
    {
        Console.MarkupLineInterpolated(provider, value);
    }
}

================================================
FILE: src/Spectre.Console/AnsiConsole.Progress.cs
================================================
namespace Spectre.Console;

/// <summary>
/// A console capable of writing ANSI escape sequences.
/// </summary>
public static partial class AnsiConsole
{
    /// <summary>
    /// Creates a new <see cref="Progress"/> instance.
    /// </summary>
    /// <returns>A <see cref="Progress"/> instance.</returns>
    public static Progress Progress()
    {
        return Console.Progress();
    }

    /// <summary>
    /// Creates a new <see cref="Status"/> instance.
    /// </summary>
    /// <returns>A <see cref="Status"/> instance.</returns>
    public static Status Status()
    {
        return Console.Status();
    }
}

================================================
FILE: src/Spectre.Console/AnsiConsole.Prompt.cs
================================================
namespace Spectre.Console;

/// <summary>
/// A console capable of writing ANSI escape sequences.
/// </summary>
public static partial class AnsiConsole
{
    /// <summary>
    /// Displays a prompt to the user.
    /// </summary>
    /// <typeparam name="T">The prompt result type.</typeparam>
    /// <param name="prompt">The prompt to display.</param>
    /// <returns>The prompt input result.</returns>
    public static T Prompt<T>(IPrompt<T> prompt)
    {
        ArgumentNullException.ThrowIfNull(prompt);

        return prompt.Show(Console);
    }

    /// <summary>
    /// Displays a prompt to the user.
    /// </summary>
    /// <typeparam name="T">The prompt result type.</typeparam>
    /// <param name="prompt">The prompt to display.</param>
    /// <param name="cancellationToken">The token to monitor for cancellation requests.</param>
    /// <returns>The prompt input result.</returns>
    public static Task<T> PromptAsync<T>(IPrompt<T> prompt, CancellationToken cancellationToken = default)
    {
        ArgumentNullException.ThrowIfNull(prompt);

        return prompt.ShowAsync(Console, cancellationToken);
    }

    /// <summary>
    /// Displays a prompt to the user.
    /// </summary>
    /// <typeparam name="T">The prompt result type.</typeparam>
    /// <param name="prompt">The prompt markup text.</param>
    /// <returns>The prompt input result.</returns>
    public static T Ask<T>(string prompt)
    {
        return new TextPrompt<T>(prompt).Show(Console);
    }

    /// <summary>
    /// Displays a prompt to the user.
    /// </summary>
    /// <typeparam name="T">The prompt result type.</typeparam>
    /// <param name="prompt">The prompt markup text.</param>
    /// <param name="cancellationToken">The token to monitor for cancellation requests.</param>
    /// <returns>The prompt input result.</returns>
    public static Task<T> AskAsync<T>(string prompt, CancellationToken cancellationToken = default)
    {
        return new TextPrompt<T>(prompt).ShowAsync(Console, cancellationToken);
    }

    /// <summary>
    /// Displays a prompt to the user with a given default.
    /// </summary>
    /// <typeparam name="T">The prompt result type.</typeparam>
    /// <param name="prompt">The prompt markup text.</param>
    /// <param name="defaultValue">The default value.</param>
    /// <returns>The prompt input result.</returns>
    public static T Ask<T>(string prompt, T defaultValue)
    {
        return new TextPrompt<T>(prompt)
            .DefaultValue(defaultValue)
            .Show(Console);
    }

    /// <summary>
    /// Displays a prompt to the user with a given default.
    /// </summary>
    /// <typeparam name="T">The prompt result type.</typeparam>
    /// <param name="prompt">The prompt markup text.</param>
    /// <param name="defaultValue">The default value.</param>
    /// <param name="cancellationToken">The token to monitor for cancellation requests.</param>
    /// <returns>The prompt input result.</returns>
    public static Task<T> AskAsync<T>(string prompt, T defaultValue, CancellationToken cancellationToken = default)
    {
        return new TextPrompt<T>(prompt)
            .DefaultValue(defaultValue)
            .ShowAsync(Console, cancellationToken);
    }

    /// <summary>
    /// Displays a prompt with two choices, yes or no.
    /// </summary>
    /// <param name="prompt">The prompt markup text.</param>
    /// <param name="defaultValue">Specifies the default answer.</param>
    /// <returns><c>true</c> if the user selected "yes", otherwise <c>false</c>.</returns>
    public static bool Confirm(string prompt, bool defaultValue = true)
    {
        return new ConfirmationPrompt(prompt)
        {
            DefaultValue = defaultValue,
        }
        .Show(Console);
    }

    /// <summary>
    /// Displays a prompt with two choices, yes or no.
    /// </summary>
    /// <param name="prompt">The prompt markup text.</param>
    /// <param name="defaultValue">Specifies the default answer.</param>
    /// <param name="cancellationToken">The token to monitor for cancellation requests.</param>
    /// <returns><c>true</c> if the user selected "yes", otherwise <c>false</c>.</returns>
    public static Task<bool> ConfirmAsync(string prompt, bool defaultValue = true, CancellationToken cancellationToken = default)
    {
        return new ConfirmationPrompt(prompt)
        {
            DefaultValue = defaultValue,
        }
        .ShowAsync(Console, cancellationToken);
    }
}

================================================
FILE: src/Spectre.Console/AnsiConsole.Recording.cs
================================================
namespace Spectre.Console;

/// <summary>
/// A console capable of writing ANSI escape sequences.
/// </summary>
public static partial class AnsiConsole
{
    /// <summary>
    /// Starts recording the console output.
    /// </summary>
    public static void Record()
    {
        if (_recorder == null)
        {
            _recorder = new Recorder(Console);
        }
    }

    /// <summary>
    /// Exports all recorded console output as text.
    /// </summary>
    /// <returns>The recorded output as text.</returns>
    public static string ExportText()
    {
        if (_recorder == null)
        {
            throw new InvalidOperationException("Cannot export text since a recording hasn't been started.");
        }

        return _recorder.ExportText();
    }

    /// <summary>
    /// Exports all recorded console output as HTML text.
    /// </summary>
    /// <returns>The recorded output as HTML text.</returns>
    public static string ExportHtml()
    {
        if (_recorder == null)
        {
            throw new InvalidOperationException("Cannot export HTML since a recording hasn't been started.");
        }

        return _recorder.ExportHtml();
    }

    /// <summary>
    /// Exports all recorded console output using a custom encoder.
    /// </summary>
    /// <param name="encoder">The encoder to use.</param>
    /// <returns>The recorded output.</returns>
    public static string ExportCustom(IAnsiConsoleEncoder encoder)
    {
        if (_recorder == null)
        {
            throw new InvalidOperationException("Cannot export HTML since a recording hasn't been started.");
        }

        ArgumentNullException.ThrowIfNull(encoder);

        return _recorder.Export(encoder);
    }
}

================================================
FILE: src/Spectre.Console/AnsiConsole.Screen.cs
================================================
namespace Spectre.Console;

/// <summary>
/// A console capable of writing ANSI escape sequences.
/// </summary>
public static partial class AnsiConsole
{
    /// <summary>
    /// Switches to an alternate screen buffer if the terminal supports it.
    /// </summary>
    /// <param name="action">The action to execute within the alternate screen buffer.</param>
    public static void AlternateScreen(Action action)
    {
        Console.AlternateScreen(action);
    }
}

================================================
FILE: src/Spectre.Console/AnsiConsole.State.cs
================================================
namespace Spectre.Console;

/// <summary>
/// A console capable of writing ANSI escape sequences.
/// </summary>
public static partial class AnsiConsole
{
    internal static Style CurrentStyle { get; private set; } = Style.Plain;
    internal static bool Created { get; private set; }

    /// <summary>
    /// Gets or sets the foreground color.
    /// </summary>
    public static Color Foreground
    {
        get => CurrentStyle.Foreground;
        set => CurrentStyle = CurrentStyle.Foreground(value);
    }

    /// <summary>
    /// Gets or sets the background color.
    /// </summary>
    public static Color Background
    {
        get => CurrentStyle.Background;
        set => CurrentStyle = CurrentStyle.Background(value);
    }

    /// <summary>
    /// Gets or sets the text decoration.
    /// </summary>
    public static Decoration Decoration
    {
        get => CurrentStyle.Decoration;
        set => CurrentStyle = CurrentStyle.Decoration(value);
    }

    /// <summary>
    /// Resets colors and text decorations.
    /// </summary>
    public static void Reset()
    {
        ResetColors();
        ResetDecoration();
    }

    /// <summary>
    /// Resets the current applied text decorations.
    /// </summary>
    public static void ResetDecoration()
    {
        Decoration = Decoration.None;
    }

    /// <summary>
    /// Resets the current applied foreground and background colors.
    /// </summary>
    public static void ResetColors()
    {
        CurrentStyle = Style.Plain;
    }
}

================================================
FILE: src/Spectre.Console/AnsiConsole.Write.cs
================================================
namespace Spectre.Console;

/// <summary>
/// A console capable of writing ANSI escape sequences.
/// </summary>
public static partial class AnsiConsole
{
    /// <summary>
    /// Renders the specified <see cref="IRenderable"/> to the console.
    /// </summary>
    /// <param name="renderable">The object to render.</param>
    public static void Write(IRenderable renderable)
    {
        ArgumentNullException.ThrowIfNull(renderable);

        Console.Write(renderable);
    }

    /// <summary>
    /// Writes the specified string value to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void Write(string value)
    {
        Write(value, CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified 32-bit
    /// signed integer value to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void Write(int value)
    {
        Write(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified 32-bit
    /// signed integer value to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void Write(IFormatProvider provider, int value)
    {
        Console.Write(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified 32-bit
    /// unsigned integer value to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void Write(uint value)
    {
        Write(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified 32-bit
    /// unsigned integer value to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void Write(IFormatProvider provider, uint value)
    {
        Console.Write(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified 64-bit
    /// signed integer value to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void Write(long value)
    {
        Write(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified 64-bit
    /// signed integer value to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void Write(IFormatProvider provider, long value)
    {
        Console.Write(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified 64-bit
    /// unsigned integer value to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void Write(ulong value)
    {
        Write(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified 64-bit
    /// unsigned integer value to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void Write(IFormatProvider provider, ulong value)
    {
        Console.Write(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified single-precision
    /// floating-point value to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void Write(float value)
    {
        Write(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified single-precision
    /// floating-point value to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void Write(IFormatProvider provider, float value)
    {
        Console.Write(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified double-precision
    /// floating-point value to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void Write(double value)
    {
        Write(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified double-precision
    /// floating-point value to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void Write(IFormatProvider provider, double value)
    {
        Console.Write(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified decimal value, to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void Write(decimal value)
    {
        Write(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified decimal value, to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void Write(IFormatProvider provider, decimal value)
    {
        Console.Write(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified boolean value to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void Write(bool value)
    {
        Write(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified boolean value to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void Write(IFormatProvider provider, bool value)
    {
        Console.Write(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the specified Unicode character to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void Write(char value)
    {
        Write(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the specified Unicode character to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void Write(IFormatProvider provider, char value)
    {
        Console.Write(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the specified array of Unicode characters to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void Write(char[] value)
    {
        Write(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the specified array of Unicode characters to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void Write(IFormatProvider provider, char[] value)
    {
        ArgumentNullException.ThrowIfNull(value);

        for (var index = 0; index < value.Length; index++)
        {
            Console.Write(value[index].ToString(provider), CurrentStyle);
        }
    }

    /// <summary>
    /// Writes the text representation of the specified array of objects,
    /// to the console using the specified format information.
    /// </summary>
    /// <param name="format">A composite format string.</param>
    /// <param name="args">An array of objects to write.</param>
    public static void Write(string format, params object[] args)
    {
        Write(CultureInfo.CurrentCulture, format, args);
    }

    /// <summary>
    /// Writes the text representation of the specified array of objects,
    /// to the console using the specified format information.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="format">A composite format string.</param>
    /// <param name="args">An array of objects to write.</param>
    public static void Write(IFormatProvider provider, string format, params object[] args)
    {
        Console.Write(string.Format(provider, format, args), CurrentStyle);
    }
}

================================================
FILE: src/Spectre.Console/AnsiConsole.WriteLine.cs
================================================
namespace Spectre.Console;

/// <summary>
/// A console capable of writing ANSI escape sequences.
/// </summary>
public static partial class AnsiConsole
{
    /// <summary>
    /// Writes an empty line to the console.
    /// </summary>
    public static void WriteLine()
    {
        Console.WriteLine();
    }

    /// <summary>
    /// Writes the specified string value, followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(string value)
    {
        Console.WriteLine(value, CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified 32-bit signed integer value,
    /// followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(int value)
    {
        WriteLine(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified 32-bit signed integer value,
    /// followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(IFormatProvider provider, int value)
    {
        Console.WriteLine(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified 32-bit unsigned integer value,
    /// followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(uint value)
    {
        WriteLine(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified 32-bit unsigned integer value,
    /// followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(IFormatProvider provider, uint value)
    {
        Console.WriteLine(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified 64-bit signed integer value,
    /// followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(long value)
    {
        WriteLine(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified 64-bit signed integer value,
    /// followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(IFormatProvider provider, long value)
    {
        Console.WriteLine(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified 64-bit unsigned integer value,
    /// followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(ulong value)
    {
        WriteLine(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified 64-bit unsigned integer value,
    /// followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(IFormatProvider provider, ulong value)
    {
        Console.WriteLine(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified single-precision floating-point
    /// value, followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(float value)
    {
        WriteLine(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified single-precision floating-point
    /// value, followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(IFormatProvider provider, float value)
    {
        Console.WriteLine(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified double-precision floating-point
    /// value, followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(double value)
    {
        WriteLine(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified double-precision floating-point
    /// value, followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(IFormatProvider provider, double value)
    {
        Console.WriteLine(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified decimal value,
    /// followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(decimal value)
    {
        WriteLine(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified decimal value,
    /// followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(IFormatProvider provider, decimal value)
    {
        Console.WriteLine(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the text representation of the specified boolean value,
    /// followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(bool value)
    {
        WriteLine(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the text representation of the specified boolean value,
    /// followed by the current line terminator, to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(IFormatProvider provider, bool value)
    {
        Console.WriteLine(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the specified Unicode character, followed by the current
    /// line terminator, value to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(char value)
    {
        WriteLine(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the specified Unicode character, followed by the current
    /// line terminator, value to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(IFormatProvider provider, char value)
    {
        Console.WriteLine(value.ToString(provider), CurrentStyle);
    }

    /// <summary>
    /// Writes the specified array of Unicode characters, followed by the current
    /// line terminator, value to the console.
    /// </summary>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(char[] value)
    {
        WriteLine(CultureInfo.CurrentCulture, value);
    }

    /// <summary>
    /// Writes the specified array of Unicode characters, followed by the current
    /// line terminator, value to the console.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="value">The value to write.</param>
    public static void WriteLine(IFormatProvider provider, char[] value)
    {
        ArgumentNullException.ThrowIfNull(value);

        for (var index = 0; index < value.Length; index++)
        {
            Console.Write(value[index].ToString(provider), CurrentStyle);
        }

        Console.WriteLine();
    }

    /// <summary>
    /// Writes the text representation of the specified array of objects,
    /// followed by the current line terminator, to the console
    /// using the specified format information.
    /// </summary>
    /// <param name="format">A composite format string.</param>
    /// <param name="args">An array of objects to write.</param>
    public static void WriteLine(string format, params object[] args)
    {
        WriteLine(CultureInfo.CurrentCulture, format, args);
    }

    /// <summary>
    /// Writes the text representation of the specified array of objects,
    /// followed by the current line terminator, to the console
    /// using the specified format information.
    /// </summary>
    /// <param name="provider">An object that supplies culture-specific formatting information.</param>
    /// <param name="format">A composite format string.</param>
    /// <param name="args">An array of objects to write.</param>
    public static void WriteLine(IFormatProvider provider, string format, params object[] args)
    {
        Console.WriteLine(string.Format(provider, format, args), CurrentStyle);
    }
}

================================================
FILE: src/Spectre.Console/AnsiConsole.cs
================================================
namespace Spectre.Console;

/// <summary>
/// A console capable of writing ANSI escape sequences.
/// </summary>
public static partial class AnsiConsole
{
    private static Recorder? _recorder;
    private static Lazy<IAnsiConsole> _console = new Lazy<IAnsiConsole>(
        () =>
        {
            var console = Create(new AnsiConsoleSettings
            {
                Ansi = AnsiSupport.Detect,
                ColorSystem = ColorSystemSupport.Detect,
                Out = new AnsiConsoleOutput(System.Console.Out),
            });

            Created = true;
            return console;
        });

    /// <summary>
    /// Gets or sets the underlying <see cref="IAnsiConsole"/>.
    /// </summary>
    public static IAnsiConsole Console
    {
        get
        {
            return _recorder ?? _console.Value;
        }
        set
        {
            _console = new Lazy<IAnsiConsole>(() => value);

            if (_recorder != null)
            {
                // Recreate the recorder
                _recorder = _recorder.Clone(value);
            }

            Created = true;
        }
    }

    /// <summary>
    /// Gets the <see cref="IAnsiConsoleCursor"/>.
    /// </summary>
    public static IAnsiConsoleCursor Cursor => _recorder?.Cursor ?? _console.Value.Cursor;

    /// <summary>
    /// Gets the console profile.
    /// </summary>
    public static Profile Profile => Console.Profile;

    /// <summary>
    /// Creates a new <see cref="IAnsiConsole"/> instance
    /// from the provided settings.
    /// </summary>
    /// <param name="settings">The settings to use.</param>
    /// <returns>An <see cref="IAnsiConsole"/> instance.</returns>
    public static IAnsiConsole Create(AnsiConsoleSettings settings)
    {
        return AnsiConsoleFactory.Create(settings);
    }

    /// <summary>
    /// Clears the console.
    /// </summary>
    public static void Clear()
    {
        Console.Clear();
    }
}

================================================
FILE: src/Spectre.Console/AnsiConsoleFactory.cs
================================================
namespace Spectre.Console;

/// <summary>
/// Factory for creating an ANSI console.
/// </summary>
internal sealed class AnsiConsoleFactory
{
    public static IAnsiConsole Create(AnsiConsoleSettings settings)
    {
        ArgumentNullException.ThrowIfNull(settings);

        var output = settings.Out ?? new AnsiConsoleOutput(System.Console.Out);
        if (output.Writer == null)
        {
            throw new InvalidOperationException("Output writer was null");
        }

        // Get the capabilities of the terminal
        var caps = Capabilities.Create(output.Writer, settings, out var encoding);

        // Create a profile using the capabilities and enrich it
        var profile = new Profile(output, caps, encoding);
        ProfileEnricher.Enrich(
            profile,
            settings.Enrichment,
            settings.EnvironmentVariables);

        return new AnsiConsoleFacade(
            profile,
            settings.ExclusivityMode ?? new DefaultExclusivityMode());
    }
}

================================================
FILE: src/Spectre.Console/AnsiConsoleOutput.cs
================================================
namespace Spectre.Console;

/// <summary>
/// Represents console output.
/// </summary>
public sealed class AnsiConsoleOutput : IAnsiConsoleOutput
{
    /// <inheritdoc/>
    public TextWriter Writer { get; }

    /// <inheritdoc/>
    public bool IsTerminal
    {
        get
        {
            if (Writer.IsStandardOut())
            {
                return !System.Console.IsOutputRedirected;
            }

            if (Writer.IsStandardError())
            {
                return !System.Console.IsErrorRedirected;
            }

            return false;
        }
    }

    /// <inheritdoc/>
    public int Width => ConsoleHelper.GetSafeWidth();

    /// <inheritdoc/>
    public int Height => ConsoleHelper.GetSafeHeight();

    /// <summary>
    /// Initializes a new instance of the <see cref="AnsiConsoleOutput"/> class.
    /// </summary>
    /// <param name="writer">The output writer.</param>
    public AnsiConsoleOutput(TextWriter writer)
    {
        Writer = writer ?? throw new ArgumentNullException(nameof(writer));
    }

    /// <inheritdoc/>
    public void SetEncoding(Encoding encoding)
    {
        if (Writer.IsStandardOut() || Writer.IsStandardError())
        {
            System.Console.OutputEncoding = encoding;
        }
    }
}

================================================
FILE: src/Spectre.Console/AnsiConsoleSettings.cs
================================================
namespace Spectre.Console;

/// <summary>
/// Settings used when building a <see cref="IAnsiConsole"/>.
/// </summary>
public sealed class AnsiConsoleSettings
{
    /// <summary>
    /// Gets or sets a value indicating whether or
    /// not ANSI escape sequences are supported.
    /// </summary>
    public AnsiSupport Ansi { get; set; }

    /// <summary>
    /// Gets or sets the color system to use.
    /// </summary>
    public ColorSystemSupport ColorSystem { get; set; } = ColorSystemSupport.Detect;

    /// <summary>
    /// Gets or sets the out buffer.
    /// </summary>
    public IAnsiConsoleOutput? Out { get; set; }

    /// <summary>
    /// Gets or sets a value indicating whether or not the
    /// terminal is interactive or not.
    /// </summary>
    public InteractionSupport Interactive { get; set; }

    /// <summary>
    /// Gets or sets the exclusivity mode.
    /// </summary>
    public IExclusivityMode? ExclusivityMode { get; set; }

    /// <summary>
    /// Gets or sets the profile enrichments settings.
    /// </summary>
    public ProfileEnrichment Enrichment { get; set; }

    /// <summary>
    /// Gets or sets the environment variables.
    /// If not value is provided the default environment variables will be used.
    /// </summary>
    public Dictionary<string, string>? EnvironmentVariables { get; set; }

    /// <summary>
    /// Initializes a new instance of the <see cref="AnsiConsoleSettings"/> class.
    /// </summary>
    public AnsiConsoleSettings()
    {
        Enrichment = new ProfileEnrichment();
    }
}

================================================
FILE: src/Spectre.Console/BoxBorder.Known.cs
================================================
namespace Spectre.Console;

/// <summary>
/// Represents a border.
/// </summary>
public abstract partial class BoxBorder
{
    /// <summary>
    /// Gets an invisible border.
    /// </summary>
    public static BoxBorder None { get; } = new NoBoxBorder();

    /// <summary>
    /// Gets an ASCII border.
    /// </summary>
    public static BoxBorder Ascii { get; } = new AsciiBoxBorder();

    /// <summary>
    /// Gets a double border.
    /// </summary>
    [SuppressMessage("Naming", "CA1720:Identifier contains type name")]
    public static BoxBorder Double { get; } = new DoubleBoxBorder();

    /// <summary>
    /// Gets a heavy border.
    /// </summary>
    public static BoxBorder Heavy { get; } = new HeavyBoxBorder();

    /// <summary>
    /// Gets a rounded border.
    /// </summary>
    public static BoxBorder Rounded { get; } = new RoundedBoxBorder();

    /// <summary>
    /// Gets a square border.
    /// </summary>
    public static BoxBorder Square { get; } = new SquareBoxBorder();
}

================================================
FILE: src/Spectre.Console/BoxBorder.cs
================================================
namespace Spectre.Console;

/// <summary>
/// Represents a border.
/// </summary>
public abstract partial class BoxBorder
{
    /// <summary>
    /// Gets the safe border for this border or <c>null</c> if none exist.
    /// </summary>
    public virtual BoxBorder? SafeBorder { get; }

    /// <summary>
    /// Gets the string representation of the specified border part.
    /// </summary>
    /// <param name="part">The part to get the character representation for.</param>
    /// <returns>A character representation of the specified border part.</returns>
    public abstract string GetPart(BoxBorderPart part);
}

/// <summary>
/// Contains extension methods for <see cref="BoxBorder"/>.
/// </summary>
public static class BoxExtensions
{
    /// <summary>
    /// Gets the safe border for a border.
    /// </summary>
    /// <param name="border">The border to get the safe border for.</param>
    /// <param name="safe">Whether or not to return the safe border.</param>
    /// <returns>The safe border if one exist, otherwise the original border.</returns>
    public static BoxBorder GetSafeBorder(this BoxBorder border, bool safe)
    {
        ArgumentNullException.ThrowIfNull(border);

        if (safe && border.SafeBorder != null)
        {
            border = border.SafeBorder;
        }

        return border;
    }
}

================================================
FILE: src/Spectre.Console/Capabilities.cs
================================================
namespace Spectre.Console;

/// <summary>
/// Represents terminal capabilities.
/// </summary>
public sealed class Capabilities : AnsiCapabilities, IReadOnlyCapabilities
{
    /// <summary>
    /// Gets or sets a value indicating whether or not
    /// this is a legacy console (cmd.exe) on an OS
    /// prior to Windows 10.
    /// </summary>
    /// <remarks>
    /// Only relevant when running on Microsoft Windows.
    /// </remarks>
    [Obsolete("This property will be removed in a future version")]
    public bool Legacy { get; set; }

    /// <summary>
    /// Gets or sets a value indicating whether
    /// or not the console supports interaction.
    /// </summary>
    public bool Interactive { get; set; }

    /// <summary>
    /// Gets or sets a value indicating whether
    /// or not the console supports Unicode.
    /// </summary>
    public bool Unicode { get; set; }

    /// <summary>
    /// Creates a <see cref="Capabilities"/> instance from the provided arguments.
    /// </summary>
    /// <param name="writer">The text writer to use.</param>
    /// <param name="settings">The settings to use.</param>
    /// <param name="encoding">The detected encoding.</param>
    /// <returns>A <see cref="Capabilities"/> instance.</returns>
    public static Capabilities Create(TextWriter writer, AnsiConsoleSettings settings, out Encoding encoding)
    {
        ArgumentNullException.ThrowIfNull(writer);

        var ansiCaps = AnsiCapabilities.Create(writer, new AnsiWriterSettings
        {
            Ansi = settings.Ansi,
            ColorSystem = settings.ColorSystem,
        });

        // Use console encoding or fall back to provided encoding
        encoding = writer.IsStandardOut() || writer.IsStandardError()
            ? System.Console.OutputEncoding : writer.Encoding;

        return new Capabilities
        {
            ColorSystem = ansiCaps.ColorSystem,
            Ansi = ansiCaps.Ansi,
            Links = ansiCaps.Links,
#pragma warning disable CS0618 // Type or member is obsolete
            Legacy = false,
#pragma warning restore CS0618 // Type or member is obsolete
            Interactive = InteractionDetector.IsInteractive(settings.Interactive),
            Unicode = encoding.EncodingName.ContainsExact("Unicode"),
            AlternateBuffer = ansiCaps.AlternateBuffer,
        };
    }
}

================================================
FILE: src/Spectre.Console/CircularBuffer.cs
================================================
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

// As this file is copied from dotnet/aspire we don't want to style it in our format to make diffing easier in the future
#pragma warning disable SA1512 // Single-line comments should not be followed by blank line
#pragma warning disable SA1513 // Closing brace should be followed by blank line
#pragma warning disable SA1515 // Single-line comment should be preceded by blank line
#pragma warning disable SA1028 // Code should not contain trailing whitespace
#pragma warning disable SA1401 // Field should be private
#pragma warning disable SA1503 // Braces should not be omitted
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable SA1507 // Code should not contain multiple blank lines in a row
#pragma warning disable SA1618 // Generic type parameters should be documented
#pragma warning disable SA1623 // Property summary documentation should match accessors
#pragma warning disable SA1600 // Elements should be documented
#pragma warning disable SA1128 // Put constructor initializers on their own line
#pragma warning disable RCS1079 // Implement the functionality instead of throwing new NotImplementedException
#pragma warning disable IDE0005 // Using directive is unnecessary

// This was taken from https://github.com/dotnet/aspire/blob/a99edf17f50cbd2717f708706448e33a53825476/src/Shared/CircularBuffer.cs its license is also MIT.  This is the same exact circularbuffer that VS uses in Microsoft.VisualStudio.Utilities (at least a cursory decompiling shows it to be such): https://learn.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.utilities.circularbuffer-1?view=visualstudiosdk-2022. Minor fix for .netstandard 2.0

using System.Runtime.InteropServices;

namespace Spectre.Console;

/// <summary>
/// The circular buffer starts with an empty list and grows to a maximum size.
/// When the buffer is full, adding or inserting a new item removes the first item in the buffer.
/// </summary>
[DebuggerDisplay("Count = {Count}")]
[DebuggerTypeProxy(typeof(CircularBuffer<>.CircularBufferDebugView))]
public sealed class CircularBuffer<T> : IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable
{
    // Internal for testing.
    internal readonly List<T> _buffer;
    internal int _start;
    internal int _end;

    public event Action<T>? ItemRemovedForCapacity;


    public CircularBuffer(int capacity) : this(new List<T>(), capacity, start: 0, end: 0)
    {
    }

    internal CircularBuffer(List<T> buffer, int capacity, int start, int end)
    {
        if (capacity < 1)
        {
            throw new ArgumentException("Circular buffer must have a capacity greater than 0.", nameof(capacity));
        }

        _buffer = buffer;
        Capacity = capacity;
        _start = start;
        _end = end;
        UniqueRemovedCheck = !typeof(T).IsValueType;
    }

    /// <summary>
    /// We have some debug.asserts to make sure items removed do not still appear in the buffer, but valuetypes can have equal items (or you may want to insert multiple copies of the same instance.  This is automatically set to false for valuetypes but you can override.
    /// </summary>
    public bool UniqueRemovedCheck { get; set; } = true;

    public int Capacity { get; }

    public bool IsFull => Count == Capacity;

    public bool IsEmpty => Count == 0;

    public int Count => _buffer.Count;

    public bool IsReadOnly { get; }

    public bool IsFixedSize { get; } = true;

    public object SyncRoot { get; } = new object();

    public bool IsSynchronized { get; }

    public int IndexOf(T item)
    {
        for (var index = 0; index < Count; ++index)
        {
            if (Equals(this[index], item))
            {
                return index;
            }
        }
        return -1;
    }

    public void Insert(int index, T item)
    {
        // TODO: There are a lot of branches in this method. Look into simplifying it.
        if (index == Count)
        {
            Add(item);
            return;
        }

        ValidateIndexInRange(index);

        if (IsFull)
        {
            if (index == 0)
            {
                // When full, the item inserted at 0 is always the "last" in the buffer and is removed.
                ItemRemovedForCapacity?.Invoke(item);
                return;
            }

            var removedItem = this[0];

            var internalIndex = InternalIndex(index);

#if !NETSTANDARD2_0
            var data = CollectionsMarshal.AsSpan(_buffer);
#else
            var data = _buffer.ToArray().AsSpan();
#endif
            // Shift data to make remove for insert.
            if (internalIndex == 0)
            {
                data.Slice(0, _end).CopyTo(data.Slice(1));
            }
            else if (internalIndex > _end)
            {
                // Data is shifted forward so save the last item to copy to the front.
                var overflowItem = data[data.Length - 1];

                var shiftLength = data.Length - internalIndex - 1;
                data.Slice(internalIndex, shiftLength).CopyTo(data.Slice(internalIndex + 1));
                if (shiftLength > 0 || internalIndex == _buffer.Count - 1)
                {
                    data.Slice(0, _end).CopyTo(data.Slice(1));
                }
                data[0] = overflowItem;
            }
            else if (internalIndex < _end && _end < _buffer.Count - 1)
            {
                data.Slice(internalIndex, _end - internalIndex).CopyTo(data.Slice(internalIndex + 1));
            }
            else
            {
                data.Slice(internalIndex, data.Length - internalIndex - 1).CopyTo(data.Slice(internalIndex + 1));
            }

            // Set the actual item.
            data[internalIndex] = item;

            Increment(ref _end);
            _start = _end;

            if (UniqueRemovedCheck)
            {
                Debug.Assert(!_buffer.Contains(removedItem), "Item was not correctly removed.");
            }
            ItemRemovedForCapacity?.Invoke(removedItem);
        }
        else
        {
            var internalIndex = index + _start;
            if (internalIndex > _buffer.Count)
            {
                internalIndex = internalIndex % _buffer.Count;
            }

            _buffer.Insert(internalIndex, item);
            if (internalIndex < _end)
            {
                Increment(ref _end);
                if (_end != _buffer.Count)
                {
                    _start = _end;
                }
            }
        }
    }

    public void RemoveAt(int index)
    {
        ValidateIndexInRange(index);

        var internalIndex = InternalIndex(index);
        _buffer.RemoveAt(internalIndex);
        if (internalIndex < _end)
        {
            Decrement(ref _end);
            if (_start > 0)
            {
                _start = _end;
            }
        }
    }

    private void ValidateIndexInRange(int index)
    {
        if (index >= Count)
        {
            throw new InvalidOperationException($"Cannot access index {index}. Buffer size is {Count}");
        }
    }

    public bool Remove(T item) => throw new NotImplementedException();

    public T this[int index]
    {
        get
        {
            ValidateIndexInRange(index);
            return _buffer[InternalIndex(index)];
        }
        set
        {
            ValidateIndexInRange(index);
            _buffer[InternalIndex(index)] = value;
        }
    }

    public void Add(T item)
    {
        if (IsFull)
        {
            var removedItem = this[0];

            _buffer[_end] = item;
            Increment(ref _end);
            _start = _end;
            if (UniqueRemovedCheck)
            {
                Debug.Assert(!_buffer.Contains(removedItem), "Item was not correctly removed.");
            }
            ItemRemovedForCapacity?.Invoke(removedItem);
        }
        else
        {
            _buffer.Insert(_end, item);
            Increment(ref _end);
            if (_end != _buffer.Count)
            {
                _start = _end;
            }
        }
    }

    public void Clear()
    {
        _start = 0;
        _end = 0;
        _buffer.Clear();
    }

    public bool Contains(T item) => IndexOf(item) != -1;

    public void CopyTo(T[] array, int arrayIndex)
    {
        if (array.Length - arrayIndex < Count)
        {
            throw new ArgumentException("Array does not contain enough space for items");
        }

        for (var index = 0; index < Count; ++index)
        {
            array[index + arrayIndex] = this[index];
        }
    }

    public T[] ToArray()
    {
        if (IsEmpty)
        {
            return Array.Empty<T>();
        }

        var array = new T[Count];
        for (var index = 0; index < Count; ++index)
        {
            array[index] = this[index];
        }

        return array;
    }

    public IEnumerator<T> GetEnumerator()
    {
        for (var i = 0; i < Count; ++i)
        {
            yield return this[i];
        }
    }

    IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();

    private int InternalIndex(int index)
    {
        return (_start + index) % _buffer.Count;
    }

    private void Increment(ref int index)
    {
        if (++index < Capacity)
        {
            return;
        }

        index = 0;
    }

    private void Decrement(ref int index)
    {
        index = (index <= 0) ? Capacity - 1 : index - 1;
    }

    public CircularBuffer<T> Clone()
    {
        var buffer = new CircularBuffer<T>(_buffer.ToList(), Capacity, _start, _end);
        buffer.ItemRemovedForCapacity = ItemRemovedForCapacity;

        return buffer;
    }

    private sealed class CircularBufferDebugView(CircularBuffer<T> collection)
    {
        private readonly CircularBuffer<T> _collection = collection;

        public T[] Items => _collection.ToArray();
        public int Start => _collection._start;
        public int End => _collection._end;
        public int Capacity => _collection.Capacity;
    }
}

#pragma warning restore SA1512 // Single-line comments should not be followed by blank line
#pragma warning restore SA1513 // Closing brace should be followed by blank line
#pragma warning restore SA1515 // Single-line comment should be preceded by blank line
#pragma warning restore SA1028 // Code should not contain trailing whitespace
#pragma warning restore SA1401 // Field should be private
#pragma warning restore SA1503 // Braces should not be omitted
#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member
#pragma warning restore SA1507 // Code should not contain multiple blank lines in a row
#pragma warning restore SA1618 // Generic type parameters should be documented
#pragma warning restore SA1623 // Property summary documentation should match accessors
#pragma warning restore SA1600 // Elements should be documented
#pragma warning restore SA1128 // Put constructor initializers on their own line
#pragma warning restore RCS1079 // Implement the functionality instead of throwing new NotImplementedException
#pragma warning disable IDE0005 // Using directive is unnecessary

================================================
FILE: src/Spectre.Console/CursorDirection.cs
================================================
namespace Spectre.Console;

/// <summary>
/// Represents cursor direction.
/// </summary>
public enum CursorDirection
{
    /// <summary>
    /// Moves cursor up.
    /// </summary>
    Up,

    /// <summary>
    /// Moves cursor down.
    /// </summary>
    Down,

    /// <summary>
    /// Moves cursor left.
    /// </summary>
    Left,

    /// <summary>
    /// Moves cursor right.
    /// </summary>
    Right,
}

================================================
FILE: src/Spectre.Console/Data/emoji.json
================================================
[
  {
    "label": "regional indicator A",
    "hexcode": "1F1E6",
    "emoji": "🇦",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator B",
    "hexcode": "1F1E7",
    "emoji": "🇧",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator C",
    "hexcode": "1F1E8",
    "emoji": "🇨",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator D",
    "hexcode": "1F1E9",
    "emoji": "🇩",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator E",
    "hexcode": "1F1EA",
    "emoji": "🇪",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator F",
    "hexcode": "1F1EB",
    "emoji": "🇫",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator G",
    "hexcode": "1F1EC",
    "emoji": "🇬",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator H",
    "hexcode": "1F1ED",
    "emoji": "🇭",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator I",
    "hexcode": "1F1EE",
    "emoji": "🇮",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator J",
    "hexcode": "1F1EF",
    "emoji": "🇯",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator K",
    "hexcode": "1F1F0",
    "emoji": "🇰",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator L",
    "hexcode": "1F1F1",
    "emoji": "🇱",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator M",
    "hexcode": "1F1F2",
    "emoji": "🇲",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator N",
    "hexcode": "1F1F3",
    "emoji": "🇳",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator O",
    "hexcode": "1F1F4",
    "emoji": "🇴",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator P",
    "hexcode": "1F1F5",
    "emoji": "🇵",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator Q",
    "hexcode": "1F1F6",
    "emoji": "🇶",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator R",
    "hexcode": "1F1F7",
    "emoji": "🇷",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator S",
    "hexcode": "1F1F8",
    "emoji": "🇸",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator T",
    "hexcode": "1F1F9",
    "emoji": "🇹",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator U",
    "hexcode": "1F1FA",
    "emoji": "🇺",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator V",
    "hexcode": "1F1FB",
    "emoji": "🇻",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator W",
    "hexcode": "1F1FC",
    "emoji": "🇼",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator X",
    "hexcode": "1F1FD",
    "emoji": "🇽",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator Y",
    "hexcode": "1F1FE",
    "emoji": "🇾",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "regional indicator Z",
    "hexcode": "1F1FF",
    "emoji": "🇿",
    "text": "",
    "type": 1,
    "version": 0
  },
  {
    "label": "grinning face",
    "hexcode": "1F600",
    "tags": [
      "cheerful",
      "cheery",
      "face",
      "grin",
      "grinning",
      "happy",
      "laugh",
      "nice",
      "smile",
      "smiling",
      "teeth"
    ],
    "emoji": "😀",
    "text": "",
    "type": 1,
    "order": 1,
    "group": 0,
    "subgroup": 0,
    "version": 1
  },
  {
    "label": "grinning face with big eyes",
    "hexcode": "1F603",
    "tags": [
      "awesome",
      "big",
      "eyes",
      "face",
      "grin",
      "grinning",
      "happy",
      "mouth",
      "open",
      "smile",
      "smiling",
      "teeth",
      "yay"
    ],
    "emoji": "😃",
    "text": "",
    "type": 1,
    "order": 2,
    "group": 0,
    "subgroup": 0,
    "version": 0.6
  },
  {
    "label": "grinning face with smiling eyes",
    "hexcode": "1F604",
    "tags": [
      "eye",
      "eyes",
      "face",
      "grin",
      "grinning",
      "happy",
      "laugh",
      "lol",
      "mouth",
      "open",
      "smile",
      "smiling"
    ],
    "emoji": "😄",
    "text": "",
    "type": 1,
    "order": 3,
    "group": 0,
    "subgroup": 0,
    "version": 0.6,
    "emoticon": ":D"
  },
  {
    "label": "beaming face with smiling eyes",
    "hexcode": "1F601",
    "tags": [
      "beaming",
      "eye",
      "eyes",
      "face",
      "grin",
      "grinning",
      "happy",
      "nice",
      "smile",
      "smiling",
      "teeth"
    ],
    "emoji": "😁",
    "text": "",
    "type": 1,
    "order": 4,
    "group": 0,
    "subgroup": 0,
    "version": 0.6
  },
  {
    "label": "grinning squinting face",
    "hexcode": "1F606",
    "tags": [
      "closed",
      "eyes",
      "face",
      "grinning",
      "haha",
      "hahaha",
      "happy",
      "laugh",
      "lol",
      "mouth",
      "open",
      "rofl",
      "smile",
      "smiling",
      "squinting"
    ],
    "emoji": "😆",
    "text": "",
    "type": 1,
    "order": 5,
    "group": 0,
    "subgroup": 0,
    "version": 0.6,
    "emoticon": [
      "xD",
      "XD"
    ]
  },
  {
    "label": "grinning face with sweat",
    "hexcode": "1F605",
    "tags": [
      "cold",
      "dejected",
      "excited",
      "face",
      "grinning",
      "mouth",
      "nervous",
      "open",
      "smile",
      "smiling",
      "stress",
      "stressed",
      "sweat"
    ],
    "emoji": "😅",
    "text": "",
    "type": 1,
    "order": 6,
    "group": 0,
    "subgroup": 0,
    "version": 0.6
  },
  {
    "label": "rolling on the floor laughing",
    "hexcode": "1F923",
    "tags": [
      "crying",
      "face",
      "floor",
      "funny",
      "haha",
      "happy",
      "hehe",
      "hilarious",
      "joy",
      "laugh",
      "lmao",
      "lol",
      "rofl",
      "roflmao",
      "rolling",
      "tear"
    ],
    "emoji": "🤣",
    "text": "",
    "type": 1,
    "order": 7,
    "group": 0,
    "subgroup": 0,
    "version": 3,
    "emoticon": ":'D"
  },
  {
    "label": "face with tears of joy",
    "hexcode": "1F602",
    "tags": [
      "crying",
      "face",
      "feels",
      "funny",
      "haha",
      "happy",
      "hehe",
      "hilarious",
      "joy",
      "laugh",
      "lmao",
      "lol",
      "rofl",
      "roflmao",
      "tear"
    ],
    "emoji": "😂",
    "text": "",
    "type": 1,
    "order": 8,
    "group": 0,
    "subgroup": 0,
    "version": 0.6,
    "emoticon": ":')"
  },
  {
    "label": "slightly smiling face",
    "hexcode": "1F642",
    "tags": [
      "face",
      "happy",
      "slightly",
      "smile",
      "smiling"
    ],
    "emoji": "🙂",
    "text": "",
    "type": 1,
    "order": 9,
    "group": 0,
    "subgroup": 0,
    "version": 1,
    "emoticon": ":)"
  },
  {
    "label": "upside-down face",
    "hexcode": "1F643",
    "tags": [
      "face",
      "hehe",
      "smile",
      "upside-down"
    ],
    "emoji": "🙃",
    "text": "",
    "type": 1,
    "order": 10,
    "group": 0,
    "subgroup": 0,
    "version": 1
  },
  {
    "label": "melting face",
    "hexcode": "1FAE0",
    "tags": [
      "disappear",
      "dissolve",
      "embarrassed",
      "face",
      "haha",
      "heat",
      "hot",
      "liquid",
      "lol",
      "melt",
      "melting",
      "sarcasm",
      "sarcastic"
    ],
    "emoji": "🫠",
    "text": "",
    "type": 1,
    "order": 11,
    "group": 0,
    "subgroup": 0,
    "version": 14
  },
  {
    "label": "winking face",
    "hexcode": "1F609",
    "tags": [
      "face",
      "flirt",
      "heartbreaker",
      "sexy",
      "slide",
      "tease",
      "wink",
      "winking",
      "winks"
    ],
    "emoji": "😉",
    "text": "",
    "type": 1,
    "order": 12,
    "group": 0,
    "subgroup": 0,
    "version": 0.6,
    "emoticon": ";)"
  },
  {
    "label": "smiling face with smiling eyes",
    "hexcode": "1F60A",
    "tags": [
      "blush",
      "eye",
      "eyes",
      "face",
      "glad",
      "satisfied",
      "smile",
      "smiling"
    ],
    "emoji": "😊",
    "text": "",
    "type": 1,
    "order": 13,
    "group": 0,
    "subgroup": 0,
    "version": 0.6,
    "emoticon": ":>"
  },
  {
    "label": "smiling face with halo",
    "hexcode": "1F607",
    "tags": [
      "angel",
      "angelic",
      "angels",
      "blessed",
      "face",
      "fairy",
      "fairytale",
      "fantasy",
      "halo",
      "happy",
      "innocent",
      "peaceful",
      "smile",
      "smiling",
      "spirit",
      "tale"
    ],
    "emoji": "😇",
    "text": "",
    "type": 1,
    "order": 14,
    "group": 0,
    "subgroup": 0,
    "version": 1,
    "emoticon": [
      "o:)",
      "O:)"
    ]
  },
  {
    "label": "smiling face with hearts",
    "hexcode": "1F970",
    "tags": [
      "3",
      "adore",
      "crush",
      "face",
      "heart",
      "hearts",
      "ily",
      "love",
      "romance",
      "smile",
      "smiling",
      "you"
    ],
    "emoji": "🥰",
    "text": "",
    "type": 1,
    "order": 15,
    "group": 0,
    "subgroup": 1,
    "version": 11
  },
  {
    "label": "smiling face with heart-eyes",
    "hexcode": "1F60D",
    "tags": [
      "143",
      "bae",
      "eye",
      "face",
      "feels",
      "heart-eyes",
      "hearts",
      "ily",
      "kisses",
      "love",
      "romance",
      "romantic",
      "smile",
      "xoxo"
    ],
    "emoji": "😍",
    "text": "",
    "type": 1,
    "order": 16,
    "group": 0,
    "subgroup": 1,
    "version": 0.6
  },
  {
    "label": "star-struck",
    "hexcode": "1F929",
    "tags": [
      "excited",
      "eyes",
      "face",
      "grinning",
      "smile",
      "star",
      "starry-eyed",
      "wow"
    ],
    "emoji": "🤩",
    "text": "",
    "type": 1,
    "order": 17,
    "group": 0,
    "subgroup": 1,
    "version": 5
  },
  {
    "label": "face blowing a kiss",
    "hexcode": "1F618",
    "tags": [
      "adorbs",
      "bae",
      "blowing",
      "face",
      "flirt",
      "heart",
      "ily",
      "kiss",
      "love",
      "lover",
      "miss",
      "muah",
      "romantic",
      "smooch",
      "xoxo",
      "you"
    ],
    "emoji": "😘",
    "text": "",
    "type": 1,
    "order": 18,
    "group": 0,
    "subgroup": 1,
    "version": 0.6,
    "emoticon": [
      ":x",
      ":X"
    ]
  },
  {
    "label": "kissing face",
    "hexcode": "1F617",
    "tags": [
      "143",
      "date",
      "dating",
      "face",
      "flirt",
      "ily",
      "kiss",
      "love",
      "smooch",
      "smooches",
      "xoxo",
      "you"
    ],
    "emoji": "😗",
    "text": "",
    "type": 1,
    "order": 19,
    "group": 0,
    "subgroup": 1,
    "version": 1
  },
  {
    "label": "smiling face",
    "hexcode": "263A",
    "tags": [
      "face",
      "happy",
      "outlined",
      "relaxed",
      "smile",
      "smiling"
    ],
    "emoji": "☺️",
    "text": "☺︎",
    "type": 0,
    "order": 21,
    "group": 0,
    "subgroup": 1,
    "version": 0.6
  },
  {
    "label": "kissing face with closed eyes",
    "hexcode": "1F61A",
    "tags": [
      "143",
      "bae",
      "blush",
      "closed",
      "date",
      "dating",
      "eye",
      "eyes",
      "face",
      "flirt",
      "ily",
      "kisses",
      "kissing",
      "smooches",
      "xoxo"
    ],
    "emoji": "😚",
    "text": "",
    "type": 1,
    "order": 22,
    "group": 0,
    "subgroup": 1,
    "version": 0.6,
    "emoticon": ":*"
  },
  {
    "label": "kissing face with smiling eyes",
    "hexcode": "1F619",
    "tags": [
      "143",
      "closed",
      "date",
      "dating",
      "eye",
      "eyes",
      "face",
      "flirt",
      "ily",
      "kiss",
      "kisses",
      "kissing",
      "love",
      "night",
      "smile",
      "smiling"
    ],
    "emoji": "😙",
    "text": "",
    "type": 1,
    "order": 23,
    "group": 0,
    "subgroup": 1,
    "version": 1
  },
  {
    "label": "smiling face with tear",
    "hexcode": "1F972",
    "tags": [
      "face",
      "glad",
      "grateful",
      "happy",
      "joy",
      "pain",
      "proud",
      "relieved",
      "smile",
      "smiley",
      "smiling",
      "tear",
      "touched"
    ],
    "emoji": "🥲",
    "text": "",
    "type": 1,
    "order": 24,
    "group": 0,
    "subgroup": 1,
    "version": 13
  },
  {
    "label": "face savoring food",
    "hexcode": "1F60B",
    "tags": [
      "delicious",
      "eat",
      "face",
      "food",
      "full",
      "hungry",
      "savor",
      "smile",
      "smiling",
      "tasty",
      "um",
      "yum",
      "yummy"
    ],
    "emoji": "😋",
    "text": "",
    "type": 1,
    "order": 25,
    "group": 0,
    "subgroup": 2,
    "version": 0.6
  },
  {
    "label": "face with tongue",
    "hexcode": "1F61B",
    "tags": [
      "awesome",
      "cool",
      "face",
      "nice",
      "party",
      "stuck-out",
      "sweet",
      "tongue"
    ],
    "emoji": "😛",
    "text": "",
    "type": 1,
    "order": 26,
    "group": 0,
    "subgroup": 2,
    "version": 1,
    "emoticon": [
      ":p",
      ":P"
    ]
  },
  {
    "label": "winking face with tongue",
    "hexcode": "1F61C",
    "tags": [
      "crazy",
      "epic",
      "eye",
      "face",
      "funny",
      "joke",
      "loopy",
      "nutty",
      "party",
      "stuck-out",
      "tongue",
      "wacky",
      "weirdo",
      "wink",
      "winking",
      "yolo"
    ],
    "emoji": "😜",
    "text": "",
    "type": 1,
    "order": 27,
    "group": 0,
    "subgroup": 2,
    "version": 0.6,
    "emoticon": [
      ";p",
      ";P"
    ]
  },
  {
    "label": "zany face",
    "hexcode": "1F92A",
    "tags": [
      "crazy",
      "eye",
      "eyes",
      "face",
      "goofy",
      "large",
      "small",
      "zany"
    ],
    "emoji": "🤪",
    "text": "",
    "type": 1,
    "order": 28,
    "group": 0,
    "subgroup": 2,
    "version": 5
  },
  {
    "label": "squinting face with tongue",
    "hexcode": "1F61D",
    "tags": [
      "closed",
      "eye",
      "eyes",
      "face",
      "gross",
      "horrible",
      "omg",
      "squinting",
      "stuck-out",
      "taste",
      "tongue",
      "whatever",
      "yolo"
    ],
    "emoji": "😝",
    "text": "",
    "type": 1,
    "order": 29,
    "group": 0,
    "subgroup": 2,
    "version": 0.6,
    "emoticon": [
      "xp",
      "xP",
      "XP"
    ]
  },
  {
    "label": "money-mouth face",
    "hexcode": "1F911",
    "tags": [
      "face",
      "money",
      "money-mouth",
      "mouth",
      "paid"
    ],
    "emoji": "🤑",
    "text": "",
    "type": 1,
    "order": 30,
    "group": 0,
    "subgroup": 2,
    "version": 1
  },
  {
    "label": "smiling face with open hands",
    "hexcode": "1F917",
    "tags": [
      "face",
      "hands",
      "hug",
      "hugging",
      "open",
      "smiling"
    ],
    "emoji": "🤗",
    "text": "",
    "type": 1,
    "order": 31,
    "group": 0,
    "subgroup": 3,
    "version": 1
  },
  {
    "label": "face with hand over mouth",
    "hexcode": "1F92D",
    "tags": [
      "face",
      "giggle",
      "giggling",
      "hand",
      "mouth",
      "oops",
      "realization",
      "secret",
      "shock",
      "sudden",
      "surprise",
      "whoops"
    ],
    "emoji": "🤭",
    "text": "",
    "type": 1,
    "order": 32,
    "group": 0,
    "subgroup": 3,
    "version": 5
  },
  {
    "label": "face with open eyes and hand over mouth",
    "hexcode": "1FAE2",
    "tags": [
      "amazement",
      "awe",
      "disbelief",
      "embarrass",
      "eyes",
      "face",
      "gasp",
      "hand",
      "mouth",
      "omg",
      "open",
      "over",
      "quiet",
      "scared",
      "shock",
      "surprise"
    ],
    "emoji": "
Download .txt
gitextract_rd6qn2_s/

├── .editorconfig
├── .git-blame-ignore-revs
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   └── feature_request.md
│   ├── pull_request_template.md
│   ├── renovate.json
│   └── workflows/
│       ├── ci.yaml
│       ├── publish.yaml
│       └── top-issues-dashboard.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE.md
├── NuGet.Config
├── README.fa.md
├── README.jp.md
├── README.md
├── README.pt-BR.md
├── README.zh.md
├── build.cs
├── dotnet-tools.json
├── global.json
├── resources/
│   ├── nuget/
│   │   ├── Spectre.Console.Ansi.md
│   │   ├── Spectre.Console.ImageSharp.md
│   │   ├── Spectre.Console.Json.md
│   │   ├── Spectre.Console.Testing.md
│   │   └── Spectre.Console.md
│   ├── scripts/
│   │   ├── .gitignore
│   │   ├── Generate-Colors.ps1
│   │   ├── Generate-Emoji.ps1
│   │   └── Generate-Spinners.ps1
│   ├── signclient.filter
│   └── spectre.snk
└── src/
    ├── .editorconfig
    ├── Benchmarks/
    │   ├── BenchmarkDotNet.Artifacts/
    │   │   └── results/
    │   │       ├── Benchmarks.AnsiBenchmarks-report-github.md
    │   │       └── Benchmarks.RenderBenchmarks-report-github.md
    │   ├── Benchmarks.csproj
    │   ├── EmojiBenchmarks.cs
    │   ├── MarkupBenchmarks.cs
    │   ├── ParagraphBenchmarks.cs
    │   └── Program.cs
    ├── Directory.Build.props
    ├── Directory.Packages.props
    ├── Extensions/
    │   ├── Spectre.Console.ImageSharp/
    │   │   ├── CanvasImage.cs
    │   │   ├── CanvasImageExtensions.cs
    │   │   └── Spectre.Console.ImageSharp.csproj
    │   └── Spectre.Console.Json/
    │       ├── IJsonParser.cs
    │       ├── JsonBuilder.cs
    │       ├── JsonParser.cs
    │       ├── JsonText.cs
    │       ├── JsonTextStyles.cs
    │       ├── JsonToken.cs
    │       ├── JsonTokenReader.cs
    │       ├── JsonTokenType.cs
    │       ├── JsonTokenizer.cs
    │       ├── Properties/
    │       │   └── Usings.cs
    │       ├── Spectre.Console.Json.csproj
    │       └── Syntax/
    │           ├── JsonArray.cs
    │           ├── JsonBoolean.cs
    │           ├── JsonMember.cs
    │           ├── JsonNull.cs
    │           ├── JsonNumber.cs
    │           ├── JsonObject.cs
    │           ├── JsonString.cs
    │           ├── JsonSyntax.cs
    │           └── JsonSyntaxVisitor.cs
    ├── Spectre.Console/
    │   ├── AnsiConsole.Exceptions.cs
    │   ├── AnsiConsole.Live.cs
    │   ├── AnsiConsole.Markup.cs
    │   ├── AnsiConsole.Progress.cs
    │   ├── AnsiConsole.Prompt.cs
    │   ├── AnsiConsole.Recording.cs
    │   ├── AnsiConsole.Screen.cs
    │   ├── AnsiConsole.State.cs
    │   ├── AnsiConsole.Write.cs
    │   ├── AnsiConsole.WriteLine.cs
    │   ├── AnsiConsole.cs
    │   ├── AnsiConsoleFactory.cs
    │   ├── AnsiConsoleOutput.cs
    │   ├── AnsiConsoleSettings.cs
    │   ├── BoxBorder.Known.cs
    │   ├── BoxBorder.cs
    │   ├── Capabilities.cs
    │   ├── CircularBuffer.cs
    │   ├── CursorDirection.cs
    │   ├── Data/
    │   │   ├── emoji.json
    │   │   ├── spinners_default.json
    │   │   └── spinners_sindresorhus.json
    │   ├── Emoji.cs
    │   ├── Enrichment/
    │   │   ├── CI/
    │   │   │   ├── AppVeyorEnricher.cs
    │   │   │   ├── AzurePipelinesEnricher.cs
    │   │   │   ├── BambooEnricher.cs
    │   │   │   ├── BitbucketEnricher.cs
    │   │   │   ├── BitriseEnricher.cs
    │   │   │   ├── ContinuaEnricher.cs
    │   │   │   ├── GitHubEnricher.cs
    │   │   │   ├── GitLabEnricher.cs
    │   │   │   ├── GoCDEnricher.cs
    │   │   │   ├── JenkinsEnricher.cs
    │   │   │   ├── MyGetEnricher.cs
    │   │   │   ├── TeamCityEnricher.cs
    │   │   │   ├── TfsEnricher.cs
    │   │   │   └── TravisEnricher.cs
    │   │   ├── ProfileEnricher.cs
    │   │   └── ProfileEnrichment.cs
    │   ├── Extensions/
    │   │   ├── AnsiConsoleExtensions.Ansi.cs
    │   │   ├── AnsiConsoleExtensions.Async.cs
    │   │   ├── AnsiConsoleExtensions.Exceptions.cs
    │   │   ├── AnsiConsoleExtensions.Exclusive.cs
    │   │   ├── AnsiConsoleExtensions.Input.cs
    │   │   ├── AnsiConsoleExtensions.Live.cs
    │   │   ├── AnsiConsoleExtensions.Markup.cs
    │   │   ├── AnsiConsoleExtensions.Progress.cs
    │   │   ├── AnsiConsoleExtensions.Prompt.cs
    │   │   ├── AnsiConsoleExtensions.Recording.cs
    │   │   ├── AnsiConsoleExtensions.Screen.cs
    │   │   ├── AnsiConsoleExtensions.Write.cs
    │   │   ├── AnsiConsoleExtensions.WriteLine.cs
    │   │   ├── AnsiConsoleExtensions.cs
    │   │   ├── AnsiWriterExtensions.cs
    │   │   └── Bcl/
    │   │       ├── CharExtensions.cs
    │   │       ├── DayOfWeekExtensions.cs
    │   │       ├── DictionaryExtensions.cs
    │   │       ├── EnumerableExtensions.cs
    │   │       ├── ExceptionExtensions.cs
    │   │       ├── Int32Extensions.cs
    │   │       ├── ListExtensions.cs
    │   │       ├── StackExtensions.cs
    │   │       ├── StringBuilderExtensions.cs
    │   │       ├── StringExtensions.cs
    │   │       └── TextWriterExtensions.cs
    │   ├── Generated/
    │   │   ├── Backport.System.Threading.Lock.SourceGenerator/
    │   │   │   └── Backport.System.Threading.Lock.SourceGenerator.Generator/
    │   │   │       ├── Backport.System.Threading.Lock.SourceGenerator.AssemblyInfo.cs
    │   │   │       ├── Backport.System.Threading.Lock.SourceGenerator.Lock.cs
    │   │   │       ├── Backport.System.Threading.Lock.SourceGenerator.LockFactory.cs
    │   │   │       └── Backport.System.Threading.Lock.SourceGenerator.ThreadAbortableLock.cs
    │   │   └── Spectre.Console.SourceGenerator/
    │   │       ├── Spectre.Console.SourceGenerator.Colors.ColorGenerator/
    │   │       │   ├── Color.Generated.g.cs
    │   │       │   ├── ColorPalette.Generated.g.cs
    │   │       │   └── ColorTable.Generated.g.cs
    │   │       ├── Spectre.Console.SourceGenerator.Emojis.EmojiGenerator/
    │   │       │   └── Emoji.Generated.g.cs
    │   │       └── Spectre.Console.SourceGenerator.Spinners.SpinnerGenerator/
    │   │           └── Spinner.Generated.g.cs
    │   ├── HorizontalAlignment.cs
    │   ├── IAlignable.cs
    │   ├── IAnsiConsole.cs
    │   ├── IAnsiConsoleCursor.cs
    │   ├── IAnsiConsoleInput.cs
    │   ├── IAnsiConsoleOutput.cs
    │   ├── IColumn.cs
    │   ├── IExclusivityMode.cs
    │   ├── IExpandable.cs
    │   ├── IHasBorder.cs
    │   ├── IHasBoxBorder.cs
    │   ├── IHasCulture.cs
    │   ├── IHasJustification.cs
    │   ├── IHasTableBorder.cs
    │   ├── IHasTreeNodes.cs
    │   ├── IHasVisibility.cs
    │   ├── IOverflowable.cs
    │   ├── IPaddable.cs
    │   ├── IProfileEnricher.cs
    │   ├── IReadOnlyCapabilities.cs
    │   ├── InteractionDetector.cs
    │   ├── InteractionSupport.cs
    │   ├── Internal/
    │   │   ├── Aligner.cs
    │   │   ├── Backends/
    │   │   │   ├── Ansi/
    │   │   │   │   ├── AnsiConsoleBackend.cs
    │   │   │   │   ├── AnsiConsoleCursor.cs
    │   │   │   │   └── AnsiStringWriter.cs
    │   │   │   ├── AnsiConsoleFacade.cs
    │   │   │   ├── IAnsiConsoleBackend.cs
    │   │   │   └── Legacy/
    │   │   │       ├── LegacyConsoleBackend.cs
    │   │   │       └── LegacyConsoleCursor.cs
    │   │   ├── Cell.cs
    │   │   ├── Collections/
    │   │   │   └── ListWithCallback.cs
    │   │   ├── ConsoleHelper.cs
    │   │   ├── Constants.cs
    │   │   ├── DecorationTable.cs
    │   │   ├── DefaultExclusivityMode.cs
    │   │   ├── DefaultInput.cs
    │   │   ├── FileSize.cs
    │   │   ├── FileSizeBase.cs
    │   │   ├── FileSizePrefix.cs
    │   │   ├── IRatioResolvable.cs
    │   │   ├── Polyfill/
    │   │   │   ├── CancellationToken.cs
    │   │   │   └── EnumHelpers.cs
    │   │   ├── Ratio.cs
    │   │   ├── ResourceReader.cs
    │   │   ├── Text/
    │   │   │   ├── Encoding/
    │   │   │   │   ├── EncoderCapabilities.cs
    │   │   │   │   ├── HtmlEncoder.cs
    │   │   │   │   └── TextEncoder.cs
    │   │   │   ├── StringBuffer.cs
    │   │   │   └── WhiteSpaceSegmentEnumerator.cs
    │   │   └── TypeConverterHelper.cs
    │   ├── Justify.cs
    │   ├── Live/
    │   │   ├── LiveDisplay.cs
    │   │   ├── LiveDisplayContext.cs
    │   │   ├── LiveDisplayRenderer.cs
    │   │   ├── LiveRenderable.cs
    │   │   ├── Progress/
    │   │   │   ├── Columns/
    │   │   │   │   ├── DownloadedColumn.cs
    │   │   │   │   ├── ElapsedTimeColumn.cs
    │   │   │   │   ├── PercentageColumn.cs
    │   │   │   │   ├── ProgressBarColumn.cs
    │   │   │   │   ├── RemainingTimeColumn.cs
    │   │   │   │   ├── SpinnerColumn.cs
    │   │   │   │   ├── TaskDescriptionColumn.cs
    │   │   │   │   └── TransferSpeedColumn.cs
    │   │   │   ├── Progress.cs
    │   │   │   ├── ProgressColumn.cs
    │   │   │   ├── ProgressContext.cs
    │   │   │   ├── ProgressRefreshThread.cs
    │   │   │   ├── ProgressRenderer.cs
    │   │   │   ├── ProgressSample.cs
    │   │   │   ├── ProgressTask.cs
    │   │   │   ├── ProgressTaskSettings.cs
    │   │   │   ├── ProgressTaskState.cs
    │   │   │   ├── Renderers/
    │   │   │   │   ├── DefaultProgressRenderer.cs
    │   │   │   │   ├── FallbackProgressRenderer.cs
    │   │   │   │   └── FallbackStatusRenderer.cs
    │   │   │   └── Spinner.cs
    │   │   └── Status/
    │   │       ├── Status.cs
    │   │       └── StatusContext.cs
    │   ├── Overflow.cs
    │   ├── Padding.cs
    │   ├── Profile.cs
    │   ├── Prompts/
    │   │   ├── ConfirmationPrompt.cs
    │   │   ├── DefaultPromptValue.cs
    │   │   ├── IMultiSelectionItem.cs
    │   │   ├── IPrompt.cs
    │   │   ├── ISelectionItem.cs
    │   │   ├── List/
    │   │   │   ├── IListPromptStrategy.cs
    │   │   │   ├── ListPrompt.cs
    │   │   │   ├── ListPromptConstants.cs
    │   │   │   ├── ListPromptInputResult.cs
    │   │   │   ├── ListPromptItem.cs
    │   │   │   ├── ListPromptRenderHook.cs
    │   │   │   ├── ListPromptState.cs
    │   │   │   └── ListPromptTree.cs
    │   │   ├── MultiSelectionPrompt.cs
    │   │   ├── MultiSelectionPromptExtensions.cs
    │   │   ├── SelectionPrompt.cs
    │   │   ├── SelectionPromptExtensions.cs
    │   │   ├── SelectionType.cs
    │   │   ├── TextPrompt.cs
    │   │   └── TextPromptExtensions.cs
    │   ├── Properties/
    │   │   └── Usings.cs
    │   ├── Recorder.cs
    │   ├── Region.cs
    │   ├── Rendering/
    │   │   ├── Borders/
    │   │   │   ├── BoxBorderPart.cs
    │   │   │   ├── Boxes/
    │   │   │   │   ├── AsciiBoxBorder.cs
    │   │   │   │   ├── DoubleBoxBorder.cs
    │   │   │   │   ├── HeavyBoxBorder.cs
    │   │   │   │   ├── NoBoxBorder.cs
    │   │   │   │   ├── RoundedBoxBorder.cs
    │   │   │   │   └── SquareBoxBorder.cs
    │   │   │   ├── TableBorderPart.cs
    │   │   │   └── Tables/
    │   │   │       ├── Ascii2TableBorder.cs
    │   │   │       ├── AsciiDoubleHeadTableBorder.cs
    │   │   │       ├── AsciiTableBorder.cs
    │   │   │       ├── DoubleEdgeTableBorder.cs
    │   │   │       ├── DoubleTableBorder.cs
    │   │   │       ├── HeavyEdgeTableBorder.cs
    │   │   │       ├── HeavyHeadTableBorder.cs
    │   │   │       ├── HeavyTableBorder.cs
    │   │   │       ├── HorizontalTableBorder.cs
    │   │   │       ├── MarkdownTableBorder.cs
    │   │   │       ├── MinimalDoubleHeadTableBorder.cs
    │   │   │       ├── MinimalHeavyHeadTableBorder.cs
    │   │   │       ├── MinimalTableBorder.cs
    │   │   │       ├── MinimalistTableBorder.cs
    │   │   │       ├── NoTableBorder.cs
    │   │   │       ├── RoundedTableBorder.cs
    │   │   │       ├── SimpleHeavyTableBorder.cs
    │   │   │       ├── SimpleTableBorder.cs
    │   │   │       └── SquareTableBorder.cs
    │   │   ├── IAnsiConsoleEncoder.cs
    │   │   ├── IHasDirtyState.cs
    │   │   ├── IRenderHook.cs
    │   │   ├── IRenderable.cs
    │   │   ├── JustInTimeRenderable.cs
    │   │   ├── Measurement.cs
    │   │   ├── RenderHookScope.cs
    │   │   ├── RenderOptions.cs
    │   │   ├── RenderPipeline.cs
    │   │   ├── Renderable.cs
    │   │   ├── Segment.cs
    │   │   ├── SegmentLine.cs
    │   │   ├── SegmentLineEnumerator.cs
    │   │   ├── SegmentLineIterator.cs
    │   │   ├── SegmentShape.cs
    │   │   ├── TablePart.cs
    │   │   ├── Tree/
    │   │   │   ├── AsciiTreeGuide.cs
    │   │   │   ├── BoldLineTreeGuide.cs
    │   │   │   ├── DoubleLineTreeGuide.cs
    │   │   │   └── LineTreeGuide.cs
    │   │   └── TreeGuidePart.cs
    │   ├── Size.cs
    │   ├── Spectre.Console.csproj
    │   ├── TableBorder.Known.cs
    │   ├── TableBorder.cs
    │   ├── TreeGuide.Known.cs
    │   ├── TreeGuide.cs
    │   ├── ValidationResult.cs
    │   ├── VerticalAlignment.cs
    │   ├── VerticalOverflow.cs
    │   ├── VerticalOverflowCropping.cs
    │   └── Widgets/
    │       ├── Align.cs
    │       ├── Calendar.cs
    │       ├── CalendarEvent.cs
    │       ├── Canvas.cs
    │       ├── Charts/
    │       │   ├── BarChart.cs
    │       │   ├── BarChartItem.cs
    │       │   ├── BreakdownBar.cs
    │       │   ├── BreakdownChart.cs
    │       │   ├── BreakdownChartItem.cs
    │       │   ├── BreakdownTags.cs
    │       │   ├── IBarChartItem.cs
    │       │   └── IBreakdownChartItem.cs
    │       ├── CircularTreeException.cs
    │       ├── Columns.cs
    │       ├── ControlCode.cs
    │       ├── Exceptions/
    │       │   ├── ExceptionFormat.cs
    │       │   ├── ExceptionFormatter.cs
    │       │   ├── ExceptionSettings.cs
    │       │   ├── ExceptionStyle.cs
    │       │   ├── StringUriExtensions.cs
    │       │   └── TypeNameHelper.cs
    │       ├── Figlet/
    │       │   ├── FigletCharacter.cs
    │       │   ├── FigletFont.cs
    │       │   ├── FigletFontParser.cs
    │       │   ├── FigletHeader.cs
    │       │   ├── FigletText.cs
    │       │   └── Fonts/
    │       │       └── Standard.flf
    │       ├── Grid.cs
    │       ├── GridColumn.cs
    │       ├── GridRow.cs
    │       ├── Layout/
    │       │   ├── Layout.cs
    │       │   ├── LayoutPlaceholder.cs
    │       │   ├── LayoutRender.cs
    │       │   └── LayoutSplitter.cs
    │       ├── Markup.cs
    │       ├── Padder.cs
    │       ├── Panel.cs
    │       ├── PanelHeader.cs
    │       ├── Paragraph.cs
    │       ├── ProgressBar.cs
    │       ├── Rows.cs
    │       ├── Rule.cs
    │       ├── Table/
    │       │   ├── Table.cs
    │       │   ├── TableAccessor.cs
    │       │   ├── TableCell.cs
    │       │   ├── TableColumn.cs
    │       │   ├── TableMeasurer.cs
    │       │   ├── TableRenderer.cs
    │       │   ├── TableRendererContext.cs
    │       │   ├── TableRow.cs
    │       │   ├── TableRowCollection.cs
    │       │   ├── TableRowEnumerator.cs
    │       │   └── TableTitle.cs
    │       ├── Text.cs
    │       ├── TextPath.cs
    │       ├── Tree.cs
    │       └── TreeNode.cs
    ├── Spectre.Console.Ansi/
    │   ├── AnsiCapabilities.cs
    │   ├── AnsiDetector.cs
    │   ├── AnsiMarkup.cs
    │   ├── AnsiMarkupHighlighter.cs
    │   ├── AnsiMarkupTagParser.cs
    │   ├── AnsiSupport.cs
    │   ├── AnsiWriter.cs
    │   ├── AnsiWriterSettings.cs
    │   ├── Color.cs
    │   ├── ColorPalette.cs
    │   ├── ColorSystem.cs
    │   ├── ColorSystemDetector.cs
    │   ├── ColorSystemSupport.cs
    │   ├── ColorTable.cs
    │   ├── Constants.cs
    │   ├── Data/
    │   │   └── colors.json
    │   ├── Decoration.cs
    │   ├── DecorationTable.cs
    │   ├── Generated/
    │   │   ├── Backport.System.Threading.Lock.SourceGenerator/
    │   │   │   └── Backport.System.Threading.Lock.SourceGenerator.Generator/
    │   │   │       ├── Backport.System.Threading.Lock.SourceGenerator.AssemblyInfo.cs
    │   │   │       ├── Backport.System.Threading.Lock.SourceGenerator.Lock.cs
    │   │   │       ├── Backport.System.Threading.Lock.SourceGenerator.LockFactory.cs
    │   │   │       └── Backport.System.Threading.Lock.SourceGenerator.ThreadAbortableLock.cs
    │   │   └── Spectre.Console.SourceGenerator/
    │   │       └── Spectre.Console.SourceGenerator.Colors.ColorGenerator/
    │   │           ├── Color.Generated.g.cs
    │   │           ├── ColorPalette.Generated.g.cs
    │   │           └── ColorTable.Generated.g.cs
    │   ├── Link.cs
    │   ├── Properties/
    │   │   └── Usings.cs
    │   ├── Spectre.Console.Ansi.csproj
    │   ├── Style.cs
    │   └── Utilities/
    │       ├── ConsoleExtensions.cs
    │       ├── EnumHelpers.cs
    │       ├── EnumerableExtensions.cs
    │       ├── StringBuffer.cs
    │       ├── StringExtensions.cs
    │       └── TextWriterExtensions.cs
    ├── Spectre.Console.Ansi.Tests/
    │   ├── AnsiMarkupTests.cs
    │   ├── AnsiWriterTests.cs
    │   ├── ColorSystemTests.cs
    │   ├── ColorTests.cs
    │   ├── Fixtures/
    │   │   └── AnsiFixture.cs
    │   ├── Properties/
    │   │   └── Usings.cs
    │   ├── Spectre.Console.Ansi.Tests.csproj
    │   └── StyleTests.cs
    ├── Spectre.Console.SourceGenerator/
    │   ├── Colors/
    │   │   ├── ColorEmitter.cs
    │   │   ├── ColorGenerator.cs
    │   │   └── ColorModel.cs
    │   ├── Emojis/
    │   │   ├── EmojiEmitter.cs
    │   │   ├── EmojiGenerator.cs
    │   │   └── EmojiModel.cs
    │   ├── EquatableArray.cs
    │   ├── Spectre.Console.SourceGenerator.csproj
    │   └── Spinners/
    │       ├── SpinnerEmitter.cs
    │       ├── SpinnerGenerator.cs
    │       └── SpinnerModel.cs
    ├── Spectre.Console.Testing/
    │   ├── .editorconfig
    │   ├── Extensions/
    │   │   ├── ShouldlyExtensions.cs
    │   │   ├── StringExtensions.cs
    │   │   ├── StyleExtensions.cs
    │   │   └── TestConsoleExtensions.cs
    │   ├── Internal/
    │   │   ├── NoopCursor.cs
    │   │   └── NoopExclusivityMode.cs
    │   ├── Properties/
    │   │   └── Usings.cs
    │   ├── Spectre.Console.Testing.csproj
    │   ├── TestCapabilities.cs
    │   ├── TestConsole.cs
    │   └── TestConsoleInput.cs
    ├── Spectre.Console.Tests/
    │   ├── Data/
    │   │   ├── Exceptions.cs
    │   │   ├── example.json
    │   │   ├── poison.flf
    │   │   └── starwars.flf
    │   ├── Expectations/
    │   │   ├── AlternateScreen/
    │   │   │   └── Show.Output.verified.txt
    │   │   ├── Cli/
    │   │   │   ├── Arguments/
    │   │   │   │   ├── ArgumentCannotContainOptions.Output.verified.txt
    │   │   │   │   ├── InvalidCharacterInOptionName.Output.verified.txt
    │   │   │   │   ├── InvalidCharacterInValueName.Output.verified.txt
    │   │   │   │   ├── LongOptionMustHaveMoreThanOneCharacter.Output.verified.txt
    │   │   │   │   ├── MissingLongAndShortName.Output.verified.txt
    │   │   │   │   ├── MultipleOptionValuesAreNotSupported.Output.verified.txt
    │   │   │   │   ├── MultipleValuesAreNotSupported.Output.verified.txt
    │   │   │   │   ├── OptionNamesCannotStartWithDigit.Output.verified.txt
    │   │   │   │   ├── OptionsMustHaveName.Output.verified.txt
    │   │   │   │   ├── ShortOptionMustOnlyBeOneCharacter.Output.verified.txt
    │   │   │   │   ├── UnexpectedCharacter.Output.verified.txt
    │   │   │   │   ├── UnterminatedValueName.Output.verified.txt
    │   │   │   │   └── ValuesMustHaveName.Output.verified.txt
    │   │   │   ├── Help/
    │   │   │   │   ├── ArgumentOrder.Output.verified.txt
    │   │   │   │   ├── Command.Output.verified.txt
    │   │   │   │   ├── CommandExamples.Output.verified.txt
    │   │   │   │   ├── Default.Output.verified.txt
    │   │   │   │   ├── DefaultExamples.Output.verified.txt
    │   │   │   │   ├── Hidden_Command_Options.Output.verified.txt
    │   │   │   │   ├── Hidden_Commands.Output.verified.txt
    │   │   │   │   ├── Leaf.Output.verified.txt
    │   │   │   │   ├── NoDescription.Output.verified.txt
    │   │   │   │   ├── Root.Output.verified.txt
    │   │   │   │   ├── RootExamples.Output.verified.txt
    │   │   │   │   ├── RootExamples_Children.Output.verified.txt
    │   │   │   │   └── RootExamples_Leafs.Output.verified.txt
    │   │   │   ├── Parsing/
    │   │   │   │   ├── CannotAssignValueToFlag/
    │   │   │   │   │   ├── Test_1.Output.verified.txt
    │   │   │   │   │   └── Test_2.Output.verified.txt
    │   │   │   │   ├── InvalidShortOptionName/
    │   │   │   │   │   └── Test_1.Output.verified.txt
    │   │   │   │   ├── LongOptionNameContainSymbol/
    │   │   │   │   │   └── Test_1.Output.verified.txt
    │   │   │   │   ├── LongOptionNameIsMissing/
    │   │   │   │   │   └── Test_1.Output.verified.txt
    │   │   │   │   ├── LongOptionNameIsOneCharacter/
    │   │   │   │   │   └── Test_1.Output.verified.txt
    │   │   │   │   ├── LongOptionNameStartWithDigit/
    │   │   │   │   │   └── Test_1.Output.verified.txt
    │   │   │   │   ├── NoMatchingArgument/
    │   │   │   │   │   └── Test_1.Output.verified.txt
    │   │   │   │   ├── NoValueForOption/
    │   │   │   │   │   ├── Test_1.Output.verified.txt
    │   │   │   │   │   └── Test_2.Output.verified.txt
    │   │   │   │   ├── OptionWithoutName/
    │   │   │   │   │   ├── Test_1.Output.verified.txt
    │   │   │   │   │   ├── Test_2.Output.verified.txt
    │   │   │   │   │   ├── Test_3.Output.verified.txt
    │   │   │   │   │   ├── Test_4.Output.verified.txt
    │   │   │   │   │   └── Test_5.Output.verified.txt
    │   │   │   │   ├── UnexpectedOption/
    │   │   │   │   │   ├── Test_1.Output.verified.txt
    │   │   │   │   │   └── Test_2.Output.verified.txt
    │   │   │   │   ├── UnknownCommand/
    │   │   │   │   │   ├── Test_1.Output.verified.txt
    │   │   │   │   │   ├── Test_2.Output.verified.txt
    │   │   │   │   │   ├── Test_3.Output.verified.txt
    │   │   │   │   │   ├── Test_4.Output.verified.txt
    │   │   │   │   │   ├── Test_5.Output.verified.txt
    │   │   │   │   │   ├── Test_6.Output.verified.txt
    │   │   │   │   │   ├── Test_7.Output.verified.txt
    │   │   │   │   │   └── Test_8.Output.verified.txt
    │   │   │   │   └── UnknownOption/
    │   │   │   │       ├── Test_1.Output.verified.txt
    │   │   │   │       └── Test_2.Output.verified.txt
    │   │   │   └── Xml/
    │   │   │       ├── Hidden_Command_Options.Output.verified.txt
    │   │   │       ├── Test_1.Output.verified.txt
    │   │   │       ├── Test_2.Output.verified.txt
    │   │   │       ├── Test_3.Output.verified.txt
    │   │   │       ├── Test_4.Output.verified.txt
    │   │   │       ├── Test_5.Output.verified.txt
    │   │   │       └── Test_6.Output.verified.txt
    │   │   ├── Exception/
    │   │   │   ├── CallSite.Output.verified.txt
    │   │   │   ├── Default.Output.verified.txt
    │   │   │   ├── GenericException.Output_exceptionFormats=Default.verified.txt
    │   │   │   ├── GenericException.Output_exceptionFormats=ShortenEverything.verified.txt
    │   │   │   ├── GenericException.Output_exceptionFormats=ShortenMethods.verified.txt
    │   │   │   ├── GenericException.Output_exceptionFormats=ShortenTypes.verified.txt
    │   │   │   ├── InnerException.Output.verified.txt
    │   │   │   ├── NoStackTrace.Output.verified.txt
    │   │   │   ├── OutParam.Output.verified.txt
    │   │   │   ├── ShortenedMethods.Output.verified.txt
    │   │   │   ├── ShortenedTypes.Output.verified.txt
    │   │   │   └── Tuple.Output.verified.txt
    │   │   ├── Live/
    │   │   │   ├── Progress/
    │   │   │   │   └── Render_ReduceWidth.Output.verified.txt
    │   │   │   └── Status/
    │   │   │       └── Render.Output.verified.txt
    │   │   ├── Prompts/
    │   │   │   └── Text/
    │   │   │       ├── AcceptChoice.Output.verified.txt
    │   │   │       ├── AutoComplete_BestMatch.Output.verified.txt
    │   │   │       ├── AutoComplete_Empty.Output.verified.txt
    │   │   │       ├── AutoComplete_NextChoice.Output.verified.txt
    │   │   │       ├── AutoComplete_PreviousChoice.Output.verified.txt
    │   │   │       ├── ChoicesStyleNotSet.Output.verified.txt
    │   │   │       ├── ChoicesStyleSet.Output.verified.txt
    │   │   │       ├── ClearOnFinish.Output.verified.txt
    │   │   │       ├── ConversionError.Output.verified.txt
    │   │   │       ├── CustomConverter.Output.verified.txt
    │   │   │       ├── CustomValidation.Output.verified.txt
    │   │   │       ├── DefaultValue.Output.verified.txt
    │   │   │       ├── DefaultValueStyleNotSet.Output.verified.txt
    │   │   │       ├── DefaultValueStyleSet.Output.verified.txt
    │   │   │       ├── InvalidChoice.Output.verified.txt
    │   │   │       ├── InvalidDefaultChoice.Output.verified.txt
    │   │   │       ├── NoSuffix.Output.verified.txt
    │   │   │       ├── SecretDefaultValue.Output.verified.txt
    │   │   │       ├── SecretDefaultValueCustomMask.Output.verified.txt
    │   │   │       ├── SecretDefaultValueNullMask.Output.verified.txt
    │   │   │       └── SecretValueBackspaceNullMask.Output.verified.txt
    │   │   ├── Rendering/
    │   │   │   └── Borders/
    │   │   │       ├── Box/
    │   │   │       │   ├── AsciiBorder.Output.verified.txt
    │   │   │       │   ├── DoubleBorder.Output.verified.txt
    │   │   │       │   ├── HeavyBorder.Output.verified.txt
    │   │   │       │   ├── NoBorder.Output.verified.txt
    │   │   │       │   ├── NoBorder_With_Header.Output.verified.txt
    │   │   │       │   ├── RoundedBorder.Output.verified.txt
    │   │   │       │   └── SquareBorder.Output.verified.txt
    │   │   │       └── Table/
    │   │   │           ├── Ascii2Border.Output.verified.txt
    │   │   │           ├── AsciiBorder.Output.verified.txt
    │   │   │           ├── AsciiDoubleHeadBorder.Output.verified.txt
    │   │   │           ├── DoubleBorder.Output.verified.txt
    │   │   │           ├── DoubleEdgeBorder.Output.verified.txt
    │   │   │           ├── HeavyBorder.Output.verified.txt
    │   │   │           ├── HeavyEdgeBorder.Output.verified.txt
    │   │   │           ├── HeavyHeadBorder.Output.verified.txt
    │   │   │           ├── HorizontalBorder.Output.verified.txt
    │   │   │           ├── MarkdownBorder.Output.verified.txt
    │   │   │           ├── MarkdownBorder_Centered.Output.verified.txt
    │   │   │           ├── MarkdownBorder_LeftAligned.Output.verified.txt
    │   │   │           ├── MarkdownBorder_RightAligned.Output.verified.txt
    │   │   │           ├── MinimalBorder.Output.verified.txt
    │   │   │           ├── MinimalDoubleHeadBorder.Output.verified.txt
    │   │   │           ├── MinimalHeavyHeadBorder.Output.verified.txt
    │   │   │           ├── MinimalistBorder.Output.verified.txt
    │   │   │           ├── NoBorder.Output.verified.txt
    │   │   │           ├── RoundedBorder.Output.verified.txt
    │   │   │           ├── SimpleBorder.Output.verified.txt
    │   │   │           ├── SimpleHeavyBorder.Output.verified.txt
    │   │   │           └── SquareBorder.Output.verified.txt
    │   │   ├── TableRowCollectionTests.TheUpdateMethod.Should_Update_Row.verified.txt
    │   │   ├── TableRowCollectionTests.TheUpdateMethod.Should_Update_Row_With_Renderable.verified.txt
    │   │   ├── TableRowCollectionTests.TheUpdateMethod.Should_Update_Row_With_String.verified.txt
    │   │   └── Widgets/
    │   │       ├── Align/
    │   │       │   ├── Center_Bottom.Output.verified.txt
    │   │       │   ├── Center_Middle.Output.verified.txt
    │   │       │   ├── Center_Top.Output.verified.txt
    │   │       │   ├── Left_Bottom.Output.verified.txt
    │   │       │   ├── Left_Middle.Output.verified.txt
    │   │       │   ├── Left_Top.Output.verified.txt
    │   │       │   ├── Right_Bottom.Output.verified.txt
    │   │       │   ├── Right_Middle.Output.verified.txt
    │   │       │   └── Right_Top.Output.verified.txt
    │   │       ├── BarChart/
    │   │       │   ├── Fixed_Max_Value.Output.verified.txt
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   └── Zero_Value.Output.verified.txt
    │   │       ├── BreakdownChart/
    │   │       │   ├── Ansi.Output.verified.txt
    │   │       │   ├── Culture.Output.verified.txt
    │   │       │   ├── Default.Output.verified.txt
    │   │       │   ├── FullSize.Output.verified.txt
    │   │       │   ├── HideTagValues.Output.verified.txt
    │   │       │   ├── HideTags.Output.verified.txt
    │   │       │   ├── TagFormat.Output.verified.txt
    │   │       │   ├── ValueColor.Output.verified.txt
    │   │       │   └── Width.Output.verified.txt
    │   │       ├── Calendar/
    │   │       │   ├── Centered.Output.verified.txt
    │   │       │   ├── Culture.Output.verified.txt
    │   │       │   ├── LeftAligned.Output.verified.txt
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   └── RightAligned.Output.verified.txt
    │   │       ├── Canvas/
    │   │       │   ├── Render.NonUnicode.verified.txt
    │   │       │   ├── Render.Unicode.verified.txt
    │   │       │   ├── Render_MaxWidth.NonUnicode.verified.txt
    │   │       │   ├── Render_MaxWidth.Unicode.verified.txt
    │   │       │   ├── Render_NarrowTerminal.NonUnicode.verified.txt
    │   │       │   ├── Render_NarrowTerminal.Unicode.verified.txt
    │   │       │   ├── Render_Nested.NonUnicode.verified.txt
    │   │       │   └── Render_Nested.Unicode.verified.txt
    │   │       ├── Columns/
    │   │       │   └── Render.Output.verified.txt
    │   │       ├── Figlet/
    │   │       │   ├── Load_Stream.Output_fontfile=poison.flf.verified.txt
    │   │       │   ├── Load_Stream.Output_fontfile=starwars.flf.verified.txt
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   ├── Render_Centered.Output.verified.txt
    │   │       │   ├── Render_LeftAligned.Output.verified.txt
    │   │       │   ├── Render_RightAligned.Output.verified.txt
    │   │       │   └── Render_Wrapped.Output.verified.txt
    │   │       ├── Grid/
    │   │       │   ├── AddEmptyRow/
    │   │       │   │   └── Render.Output.verified.txt
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   ├── Render_2.Output.verified.txt
    │   │       │   ├── Render_Alignment.Output.verified.txt
    │   │       │   ├── Render_Cell_Markup_Overflow.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_Crop.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_Ellipsis.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_Fold.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_With_NoWrap.Output.verified.txt
    │   │       │   ├── Render_ExplicitPadding.Output.verified.txt
    │   │       │   └── Render_Padding.Output.verified.txt
    │   │       ├── Json/
    │   │       │   ├── Render_Compact_Json.Output.verified.txt
    │   │       │   └── Render_Json.Output.verified.txt
    │   │       ├── Layout/
    │   │       │   ├── Render_Empty_Layout.Output.verified.txt
    │   │       │   ├── Render_Fallback_Layout.Output.verified.txt
    │   │       │   ├── Render_Layout.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Columns.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Columns.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Rows.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Rows_And_Columns.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Three_Rows_In_One_Column.Output_17.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Three_Rows_In_One_Column.Output_20.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Three_Rows_In_One_Column.Output_23.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Three_Rows_In_One_Column.Output_28.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Three_Rows_In_One_Column.Output_30.verified.txt
    │   │       │   ├── Render_Layout_With_Nested_Three_Rows_In_One_Column.Output_31.verified.txt
    │   │       │   ├── Render_Layout_With_Respect_To_Minimum_Size.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Respect_To_Ratio.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Respect_To_Size.Output.verified.txt
    │   │       │   ├── Render_Layout_With_Rows.Output.verified.txt
    │   │       │   └── Render_Layout_Without_Invisible_Children.Output.verified.txt
    │   │       ├── Padder/
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   ├── Render_Expanded.Output.verified.txt
    │   │       │   └── Render_Nested.Output.verified.txt
    │   │       ├── Panel/
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   ├── Render_CJK.Output.verified.txt
    │   │       │   ├── Render_Child_Centered.Output.verified.txt
    │   │       │   ├── Render_Child_Panel.Output.verified.txt
    │   │       │   ├── Render_Child_RightAligned.Output.verified.txt
    │   │       │   ├── Render_Expand.Output.verified.txt
    │   │       │   ├── Render_Header.Output.verified.txt
    │   │       │   ├── Render_Header_Centered.Output.verified.txt
    │   │       │   ├── Render_Header_Collapse.Output.verified.txt
    │   │       │   ├── Render_Header_LeftAligned.Output.verified.txt
    │   │       │   ├── Render_Header_RightAligned.Output.verified.txt
    │   │       │   ├── Render_Height.Output.verified.txt
    │   │       │   ├── Render_LineEndings.Output.verified.txt
    │   │       │   ├── Render_Markup_Overflow_Ellipsis.Output.verified.txt
    │   │       │   ├── Render_Multiline.Output.verified.txt
    │   │       │   ├── Render_Nested_Panel_With_Overflow.Output.verified.txt
    │   │       │   ├── Render_Padding.Output.verified.txt
    │   │       │   ├── Render_Text_Overflow_Crop.Output.verified.txt
    │   │       │   ├── Render_Text_Overflow_Ellipsis.Output.verified.txt
    │   │       │   ├── Render_Text_Overflow_Fold.Output.verified.txt
    │   │       │   ├── Render_Text_Overflow_With_Padding.Output.verified.txt
    │   │       │   ├── Render_Unicode.Output.verified.txt
    │   │       │   ├── Render_Width.Output.verified.txt
    │   │       │   ├── Render_Width_Height.Output.verified.txt
    │   │       │   ├── Render_Width_MaxWidth.Output.verified.txt
    │   │       │   ├── Render_Wrap.Output.verified.txt
    │   │       │   └── Render_ZeroPadding.Output.verified.txt
    │   │       ├── ProgressBar/
    │   │       │   ├── Formatted.Output.verified.txt
    │   │       │   └── Render.Output.verified.txt
    │   │       ├── Recorder/
    │   │       │   ├── Html.Output.verified.txt
    │   │       │   └── Text.Output.verified.txt
    │   │       ├── Rows/
    │   │       │   ├── GH-1188-Rows.Output.verified.txt
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   ├── Render_Empty.Output.verified.txt
    │   │       │   ├── Render_Expanded_And_Nested.Output.verified.txt
    │   │       │   └── Render_Nested.Output.verified.txt
    │   │       ├── Rule/
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   ├── Render_Border_Header.Output.verified.txt
    │   │       │   ├── Render_Border_NoHeader.Output.verified.txt
    │   │       │   ├── Render_Header_DefaultAlignment.Output.verified.txt
    │   │       │   ├── Render_Header_LeftAligned.Output.verified.txt
    │   │       │   ├── Render_Header_RightAligned.Output.verified.txt
    │   │       │   ├── Render_Linebreaks.Output.verified.txt
    │   │       │   └── Render_Truncate.Output.verified.txt
    │   │       ├── Table/
    │   │       │   ├── AddEmptyRow.Output.verified.txt
    │   │       │   ├── Render.Output.verified.txt
    │   │       │   ├── Render_CellPadding.Output.verified.txt
    │   │       │   ├── Render_Cell_Markup_Overflow.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_Crop.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_Ellipsis.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_Fold.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_Multiple_Rows.Output.verified.txt
    │   │       │   ├── Render_Cell_Overflow_With_NoWrap.Output.verified.txt
    │   │       │   ├── Render_Centered.Align_Widget.verified.txt
    │   │       │   ├── Render_Centered.Output.verified.txt
    │   │       │   ├── Render_ColumnJustification.Output.verified.txt
    │   │       │   ├── Render_ColumnSpan_2.Output.verified.txt
    │   │       │   ├── Render_ColumnSpan_3.Output.verified.txt
    │   │       │   ├── Render_ColumnSpan_All.Output.verified.txt
    │   │       │   ├── Render_ColumnSpan_LeftAligned.Output.verified.txt
    │   │       │   ├── Render_ColumnSpan_Multiline.Output.verified.txt
    │   │       │   ├── Render_ColumnSpan_Multiple.Output.verified.txt
    │   │       │   ├── Render_ColumnSpan_NoBorder.Output.verified.txt
    │   │       │   ├── Render_EA_Character.Output.verified.txt
    │   │       │   ├── Render_Empty_Column.Output.verified.txt
    │   │       │   ├── Render_Expand.Output.verified.txt
    │   │       │   ├── Render_Fold.Output.verified.txt
    │   │       │   ├── Render_Footers.Output.verified.txt
    │   │       │   ├── Render_Impossible.Output.verified.txt
    │   │       │   ├── Render_LeftAligned.Align_Widget.verified.txt
    │   │       │   ├── Render_LeftAligned.Output.verified.txt
    │   │       │   ├── Render_Multiline.Output.verified.txt
    │   │       │   ├── Render_Nested.Output.verified.txt
    │   │       │   ├── Render_NoRows.Output.verified.txt
    │   │       │   ├── Render_RightAligned.Align_Widget.verified.txt
    │   │       │   ├── Render_RightAligned.Output.verified.txt
    │   │       │   ├── Render_Row_Separators.Output.verified.txt
    │   │       │   ├── Render_Row_Separators_No_Header.Output.verified.txt
    │   │       │   ├── Render_Title_Caption.Output.verified.txt
    │   │       │   ├── Render_Title_Caption_Centered.Output.verified.txt
    │   │       │   ├── Render_Title_Caption_LeftAligned.Output.verified.txt
    │   │       │   ├── Render_Title_Caption_LowerCase.Output.verified.txt
    │   │       │   ├── Render_Title_Caption_RightAligned.Output.verified.txt
    │   │       │   └── Rows/
    │   │       │       ├── Add.Output.verified.txt
    │   │       │       ├── Extensions/
    │   │       │       │   ├── Add.Renderables.verified.txt
    │   │       │       │   ├── Add.Strings.verified.txt
    │   │       │       │   ├── Insert.Renderables.verified.txt
    │   │       │       │   ├── Insert.Strings.verified.txt
    │   │       │       │   └── Remove.Output.verified.txt
    │   │       │       ├── Insert.Output.verified.txt
    │   │       │       └── Remove.Output.verified.txt
    │   │       ├── TextPath/
    │   │       │   └── GH-1307.Output.verified.txt
    │   │       └── Tree/
    │   │           ├── Render.Output.verified.txt
    │   │           └── Render_NoChildren.Output.verified.txt
    │   ├── Extensions/
    │   │   ├── ConsoleKeyExtensions.cs
    │   │   └── StreamExtensions.cs
    │   ├── Legacy/
    │   │   ├── Color.Generated.cs
    │   │   ├── Emoji.Generated.cs
    │   │   └── Spinner.Generated.cs
    │   ├── Properties/
    │   │   └── Usings.cs
    │   ├── Spectre.Console.Tests.csproj
    │   ├── Unit/
    │   │   ├── AlternateScreenTests.cs
    │   │   ├── AnsiConsoleTests.Ansi.cs
    │   │   ├── AnsiConsoleTests.Colors.cs
    │   │   ├── AnsiConsoleTests.Cursor.cs
    │   │   ├── AnsiConsoleTests.Markup.cs
    │   │   ├── AnsiConsoleTests.MarkupInterpolated.cs
    │   │   ├── AnsiConsoleTests.Prompt.cs
    │   │   ├── AnsiConsoleTests.Style.cs
    │   │   ├── AnsiConsoleTests.cs
    │   │   ├── AnsiDetectorTests.cs
    │   │   ├── BackwardsCompatibilityTests.cs
    │   │   ├── EmojiTests.cs
    │   │   ├── ExceptionTests.cs
    │   │   ├── InteractionDetectorTests.cs
    │   │   ├── Internal/
    │   │   │   ├── FileSizeTests.cs
    │   │   │   └── WhiteSpaceSegmentEnumeratorTests.cs
    │   │   ├── Live/
    │   │   │   ├── Progress/
    │   │   │   │   ├── DownloadedColumnTests.cs
    │   │   │   │   ├── ProgressColumnFixture.cs
    │   │   │   │   ├── ProgressTaskTests.cs
    │   │   │   │   └── ProgressTests.cs
    │   │   │   └── StatusTests.cs
    │   │   ├── Prompts/
    │   │   │   ├── ListPromptStateTests.cs
    │   │   │   ├── MultiSelectionPromptTests.cs
    │   │   │   ├── SelectionPromptTests.cs
    │   │   │   └── TextPromptTests.cs
    │   │   ├── RecorderTests.cs
    │   │   ├── Rendering/
    │   │   │   ├── Borders/
    │   │   │   │   ├── BoxBorderTests.cs
    │   │   │   │   └── TableBorderTests.cs
    │   │   │   ├── RenderHookTests.cs
    │   │   │   ├── SegmentShapeTests.cs
    │   │   │   └── SegmentTests.cs
    │   │   └── Widgets/
    │   │       ├── AlignTests.cs
    │   │       ├── BarChartTests.cs
    │   │       ├── BreakdownChartTests.cs
    │   │       ├── CalendarTests.cs
    │   │       ├── CanvasTests.cs
    │   │       ├── ColumnsTests.cs
    │   │       ├── FigletTests.cs
    │   │       ├── GridTests.cs
    │   │       ├── JsonTextTests.cs
    │   │       ├── LayoutTests.cs
    │   │       ├── MarkupTests.cs
    │   │       ├── PadderTests.cs
    │   │       ├── PanelTests.cs
    │   │       ├── ProgressBarTests.cs
    │   │       ├── RowsTests.cs
    │   │       ├── RuleTests.cs
    │   │       ├── Table/
    │   │       │   ├── TableRowCollectionExtensionsTests.cs
    │   │       │   ├── TableRowCollectionTests.cs
    │   │       │   └── TableTests.cs
    │   │       ├── TextPathTests.cs
    │   │       ├── TextTests.cs
    │   │       └── TreeTests.cs
    │   ├── Utilities/
    │   │   ├── EmbeddedResourceReader.cs
    │   │   ├── FakeTimeProvider.cs
    │   │   ├── GitHubIssueAttribute.cs
    │   │   ├── ModuleInitializerAttribute.cs
    │   │   └── TestConsoleExtensions.cs
    │   └── VerifyConfiguration.cs
    └── Spectre.Console.slnx
Download .txt
Showing preview only (273K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2843 symbols across 432 files)

FILE: src/Benchmarks/EmojiBenchmarks.cs
  class EmojiBenchmarks (line 7) | [MemoryDiagnoser]
    method Replace_NoEmoji (line 11) | [Benchmark]
    method Replace_NoEmoji_ButColon (line 17) | [Benchmark]
    method Replace_Emoji (line 23) | [Benchmark]

FILE: src/Benchmarks/MarkupBenchmarks.cs
  class MarkupBenchmarks (line 7) | [MemoryDiagnoser]
    method Markup_Constructor (line 13) | [Benchmark]
    method AnsiMarkup_Parse (line 19) | [Benchmark]

FILE: src/Benchmarks/ParagraphBenchmarks.cs
  class ParagraphBenchmarks (line 7) | [MemoryDiagnoser]
    method Append (line 19) | [Benchmark]

FILE: src/Benchmarks/Program.cs
  class Program (line 9) | public static class Program
    method Main (line 11) | public static int Main(string[] args)
  class RenderBenchmarks (line 18) | [MemoryDiagnoser]
    method Setup (line 27) | [GlobalSetup]
    method Render (line 43) | [Benchmark]
  class AnsiBenchmarks (line 47) | [MemoryDiagnoser]
    method Setup (line 56) | [GlobalSetup]
    method RenderableToAnsi (line 72) | [Benchmark]

FILE: src/Extensions/Spectre.Console.ImageSharp/CanvasImage.cs
  class CanvasImage (line 15) | public sealed class CanvasImage : Renderable
    method CanvasImage (line 52) | public CanvasImage(string filename)
    method CanvasImage (line 61) | public CanvasImage(ReadOnlySpan<byte> data)
    method CanvasImage (line 70) | public CanvasImage(Stream data)
    method Measure (line 76) | protected override Measurement Measure(RenderOptions options, int maxW...
    method Render (line 89) | protected override IEnumerable<Segment> Render(RenderOptions options, ...

FILE: src/Extensions/Spectre.Console.ImageSharp/CanvasImageExtensions.cs
  class CanvasImageExtensions (line 9) | public static class CanvasImageExtensions
    method MaxWidth (line 17) | public static CanvasImage MaxWidth(this CanvasImage image, int? maxWidth)
    method NoMaxWidth (line 30) | public static CanvasImage NoMaxWidth(this CanvasImage image)
    method PixelWidth (line 44) | [Obsolete("Not used anymore. Will be removed in future update.")]
    method Mutate (line 59) | public static CanvasImage Mutate(this CanvasImage image, Action<IImage...
    method BicubicResampler (line 74) | public static CanvasImage BicubicResampler(this CanvasImage image)
    method BilinearResampler (line 89) | public static CanvasImage BilinearResampler(this CanvasImage image)
    method NearestNeighborResampler (line 104) | public static CanvasImage NearestNeighborResampler(this CanvasImage im...

FILE: src/Extensions/Spectre.Console.Json/IJsonParser.cs
  type IJsonParser (line 6) | public interface IJsonParser
    method Parse (line 13) | JsonSyntax Parse(string json);

FILE: src/Extensions/Spectre.Console.Json/JsonBuilder.cs
  class JsonBuilderContext (line 3) | internal sealed class JsonBuilderContext
    method JsonBuilderContext (line 10) | public JsonBuilderContext(
    method InsertIndentation (line 18) | public void InsertIndentation()
  class JsonBuilder (line 27) | internal sealed class JsonBuilder : JsonSyntaxVisitor<JsonBuilderContext>
    method VisitObject (line 31) | public override void VisitObject(JsonObject syntax, JsonBuilderContext...
    method VisitArray (line 55) | public override void VisitArray(JsonArray syntax, JsonBuilderContext c...
    method VisitMember (line 79) | public override void VisitMember(JsonMember syntax, JsonBuilderContext...
    method VisitNumber (line 88) | public override void VisitNumber(JsonNumber syntax, JsonBuilderContext...
    method VisitString (line 93) | public override void VisitString(JsonString syntax, JsonBuilderContext...
    method VisitBoolean (line 98) | public override void VisitBoolean(JsonBoolean syntax, JsonBuilderConte...
    method VisitNull (line 103) | public override void VisitNull(JsonNull syntax, JsonBuilderContext con...

FILE: src/Extensions/Spectre.Console.Json/JsonParser.cs
  class JsonParser (line 3) | internal sealed class JsonParser : IJsonParser
    method Parse (line 7) | public JsonSyntax Parse(string json)
    method ParseElement (line 21) | private static JsonSyntax ParseElement(JsonTokenReader reader)
    method ParseElements (line 26) | private static List<JsonSyntax> ParseElements(JsonTokenReader reader)
    method ParseValue (line 45) | private static JsonSyntax ParseValue(JsonTokenReader reader)
    method ParseObject (line 90) | private static JsonSyntax ParseObject(JsonTokenReader reader)
    method ParseArray (line 105) | private static JsonSyntax ParseArray(JsonTokenReader reader)
    method ParseMembers (line 120) | private static List<JsonMember> ParseMembers(JsonTokenReader reader)
    method ParseMember (line 139) | private static JsonMember ParseMember(JsonTokenReader reader)

FILE: src/Extensions/Spectre.Console.Json/JsonText.cs
  class JsonText (line 6) | public sealed class JsonText : JustInTimeRenderable
    method JsonText (line 79) | public JsonText(string json)
    method Build (line 85) | protected override IRenderable Build()
  class JsonTextExtensions (line 111) | public static class JsonTextExtensions
    method BracesStyle (line 119) | public static JsonText BracesStyle(this JsonText text, Style? style)
    method BracketStyle (line 133) | public static JsonText BracketStyle(this JsonText text, Style? style)
    method MemberStyle (line 147) | public static JsonText MemberStyle(this JsonText text, Style? style)
    method ColonStyle (line 161) | public static JsonText ColonStyle(this JsonText text, Style? style)
    method CommaStyle (line 175) | public static JsonText CommaStyle(this JsonText text, Style? style)
    method StringStyle (line 189) | public static JsonText StringStyle(this JsonText text, Style? style)
    method NumberStyle (line 203) | public static JsonText NumberStyle(this JsonText text, Style? style)
    method BooleanStyle (line 217) | public static JsonText BooleanStyle(this JsonText text, Style? style)
    method NullStyle (line 231) | public static JsonText NullStyle(this JsonText text, Style? style)
    method BracesColor (line 245) | public static JsonText BracesColor(this JsonText text, Color color)
    method BracketColor (line 259) | public static JsonText BracketColor(this JsonText text, Color color)
    method MemberColor (line 273) | public static JsonText MemberColor(this JsonText text, Color color)
    method ColonColor (line 287) | public static JsonText ColonColor(this JsonText text, Color color)
    method CommaColor (line 301) | public static JsonText CommaColor(this JsonText text, Color color)
    method StringColor (line 315) | public static JsonText StringColor(this JsonText text, Color color)
    method NumberColor (line 329) | public static JsonText NumberColor(this JsonText text, Color color)
    method BooleanColor (line 343) | public static JsonText BooleanColor(this JsonText text, Color color)
    method NullColor (line 357) | public static JsonText NullColor(this JsonText text, Color color)
    method Indentation (line 371) | public static JsonText Indentation(this JsonText text, string indentat...

FILE: src/Extensions/Spectre.Console.Json/JsonTextStyles.cs
  class JsonTextStyles (line 3) | internal sealed class JsonTextStyles

FILE: src/Extensions/Spectre.Console.Json/JsonToken.cs
  class JsonToken (line 3) | internal sealed class JsonToken
    method JsonToken (line 8) | public JsonToken(JsonTokenType type, string lexeme)

FILE: src/Extensions/Spectre.Console.Json/JsonTokenReader.cs
  class JsonTokenReader (line 3) | internal sealed class JsonTokenReader
    method JsonTokenReader (line 11) | public JsonTokenReader(List<JsonToken> tokens)
    method Consume (line 19) | public JsonToken Consume(JsonTokenType type)
    method Peek (line 35) | public JsonToken? Peek()
    method Read (line 45) | public JsonToken? Read()

FILE: src/Extensions/Spectre.Console.Json/JsonTokenType.cs
  type JsonTokenType (line 3) | internal enum JsonTokenType

FILE: src/Extensions/Spectre.Console.Json/JsonTokenizer.cs
  class JsonTokenizer (line 3) | internal static class JsonTokenizer
    method JsonTokenizer (line 9) | static JsonTokenizer()
    method Tokenize (line 34) | public static List<JsonToken> Tokenize(string text)
    method ReadString (line 92) | private static JsonToken ReadString(StringBuffer buffer)
    method ReadNumber (line 137) | private static JsonToken ReadNumber(StringBuffer buffer)
    method ReadDigits (line 189) | private static void ReadDigits(StringBuffer buffer, StringBuilder accu...

FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonArray.cs
  class JsonArray (line 6) | public sealed class JsonArray : JsonSyntax
    method JsonArray (line 16) | public JsonArray()
    method Accept (line 21) | internal override void Accept<T>(JsonSyntaxVisitor<T> visitor, T context)

FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonBoolean.cs
  class JsonBoolean (line 6) | public sealed class JsonBoolean : JsonSyntax
    method JsonBoolean (line 17) | public JsonBoolean(string lexeme)
    method Accept (line 22) | internal override void Accept<T>(JsonSyntaxVisitor<T> visitor, T context)

FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonMember.cs
  class JsonMember (line 6) | public sealed class JsonMember : JsonSyntax
    method JsonMember (line 23) | public JsonMember(string name, JsonSyntax value)
    method Accept (line 29) | internal override void Accept<T>(JsonSyntaxVisitor<T> visitor, T context)

FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonNull.cs
  class JsonNull (line 6) | public sealed class JsonNull : JsonSyntax
    method JsonNull (line 17) | public JsonNull(string lexeme)
    method Accept (line 22) | internal override void Accept<T>(JsonSyntaxVisitor<T> visitor, T context)

FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonNumber.cs
  class JsonNumber (line 3) | internal sealed class JsonNumber : JsonSyntax
    method JsonNumber (line 7) | public JsonNumber(string lexeme)
    method Accept (line 12) | internal override void Accept<T>(JsonSyntaxVisitor<T> visitor, T context)

FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonObject.cs
  class JsonObject (line 6) | public sealed class JsonObject : JsonSyntax
    method JsonObject (line 16) | public JsonObject()
    method Accept (line 21) | internal override void Accept<T>(JsonSyntaxVisitor<T> visitor, T context)

FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonString.cs
  class JsonString (line 6) | public sealed class JsonString : JsonSyntax
    method JsonString (line 17) | public JsonString(string lexeme)
    method Accept (line 22) | internal override void Accept<T>(JsonSyntaxVisitor<T> visitor, T context)

FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonSyntax.cs
  class JsonSyntax (line 6) | public abstract class JsonSyntax
    method Accept (line 8) | internal abstract void Accept<T>(JsonSyntaxVisitor<T> visitor, T conte...

FILE: src/Extensions/Spectre.Console.Json/Syntax/JsonSyntaxVisitor.cs
  class JsonSyntaxVisitor (line 3) | internal abstract class JsonSyntaxVisitor<T>
    method VisitObject (line 5) | public abstract void VisitObject(JsonObject syntax, T context);
    method VisitArray (line 6) | public abstract void VisitArray(JsonArray syntax, T context);
    method VisitMember (line 7) | public abstract void VisitMember(JsonMember syntax, T context);
    method VisitNumber (line 8) | public abstract void VisitNumber(JsonNumber syntax, T context);
    method VisitString (line 9) | public abstract void VisitString(JsonString syntax, T context);
    method VisitBoolean (line 10) | public abstract void VisitBoolean(JsonBoolean syntax, T context);
    method VisitNull (line 11) | public abstract void VisitNull(JsonNull syntax, T context);

FILE: src/Spectre.Console.Ansi.Tests/AnsiMarkupTests.cs
  class AnsiMarkupTests (line 3) | public sealed class AnsiMarkupTests
    class TheParseMethod (line 5) | public sealed class TheParseMethod
      method Should_Throw_If_Encounters_Malformed_Tag (line 7) | [Theory]
      method Should_Throw_If_Tags_Are_Unbalanced (line 23) | [Fact]
      method Should_Throw_If_Encounters_Closing_Tag (line 34) | [Fact]
    class TheEscapeMethod (line 46) | public sealed class TheEscapeMethod
      method Should_Escape_Markup_As_Expected (line 48) | [Theory]
    class TheRemoveMethod (line 64) | public sealed class TheRemoveMethod
      method Should_Remove_Markup_From_Text (line 66) | [Theory]
    class TheHighlightMethod (line 81) | public sealed class TheHighlightMethod
      method Should_Return_Same_Value_When_SearchText_Is_Empty (line 86) | [Fact]
      method Should_Highlight_Matched_Text (line 101) | [Fact]
      method Should_Match_Text_Across_Tokens (line 116) | [Fact]
      method Should_Highlight_Only_First_Matched_Text (line 131) | [Fact]
      method Should_Not_Match_Text_Outside_Of_Text_Tokens (line 146) | [Fact]
      method Should_Not_Corrupt_Escaped_Brackets_When_Highlighting (line 161) | [Fact]
      method Should_Produce_Valid_Markup_With_Escaped_Brackets (line 177) | [Theory]
      method Should_Highlight_Text_Adjacent_To_Escaped_Brackets (line 191) | [Fact]
      method Should_Highlight_Text_After_Escaped_Brackets (line 207) | [Fact]
    class TheWriteMethod (line 224) | public sealed class TheWriteMethod
      method Should_Escape_Markup_Blocks_As_Expected (line 226) | [Fact]
      method Should_Output_Expected_Ansi_For_Markup (line 240) | [Theory]
      method Should_Output_Expected_Ansi_For_Link_With_Url_And_Text (line 257) | [Fact]
      method Should_Output_Expected_Ansi_For_Link_With_Only_Url (line 271) | [Fact]
      method Should_Output_Expected_Ansi_For_Link_With_Bracket_In_Url_Only (line 285) | [Fact]
      method Should_Output_Expected_Ansi_For_Link_With_Bracket_In_Url (line 300) | [Fact]
      method Should_Be_Able_To_Escape_Tags (line 316) | [Theory]

FILE: src/Spectre.Console.Ansi.Tests/AnsiWriterTests.cs
  class AnsiWriterTests (line 3) | public sealed class AnsiWriterTests
    method Should_Write_Expected_Ansi (line 5) | [Fact]
    method Should_Not_Write_Link_If_Not_Supported (line 26) | [Fact]
    method Should_Not_Write_Ansi_If_Not_Supported (line 47) | [Fact]

FILE: src/Spectre.Console.Ansi.Tests/ColorSystemTests.cs
  class ColorSystemTests (line 3) | public sealed class ColorSystemTests
    method Should_Be_Analog_To_ColorSystemSupport (line 5) | [Theory]

FILE: src/Spectre.Console.Ansi.Tests/ColorTests.cs
  class ColorTests (line 3) | public sealed class ColorTests
    class TheEqualsMethod (line 5) | public sealed class TheEqualsMethod
      method Should_Consider_Color_And_Color_From_Hex_Equal (line 7) | [Theory]
      method Should_Consider_Color_And_Color_Try_From_Hex_Equal (line 22) | [Theory]
      method Should_Not_Parse_Non_Color_From_Hex (line 38) | [Theory]
      method Should_Not_Parse_Non_Color_Try_From_Hex (line 53) | [Theory]
      method Should_Parse_3_Digit_Hex_Colors_From_Hex (line 69) | [Theory]
      method Should_Not_Consider_Color_And_Non_Color_Equal (line 86) | [Fact]
      method Should_Consider_Same_Colors_Equal_By_Component (line 99) | [Fact]
      method Should_Consider_Same_Known_Colors_Equal (line 113) | [Fact]
      method Should_Consider_Known_Color_And_Color_With_Same_Components_Equal (line 127) | [Fact]
      method Should_Not_Consider_Different_Colors_Equal (line 141) | [Fact]
      method Shourd_Not_Consider_Black_And_Default_Colors_Equal (line 155) | [Fact]
    class TheGetHashCodeMethod (line 170) | public sealed class TheGetHashCodeMethod
      method Should_Return_Same_HashCode_For_Same_Colors (line 172) | [Fact]
      method Should_Return_Different_HashCode_For_Different_Colors (line 187) | [Fact]
    class ImplicitConversions (line 203) | public sealed class ImplicitConversions
      class Int32ToColor (line 205) | public sealed class Int32ToColor
        method Should_Return_Expected_Color (line 211) | [Theory]
        method Should_Throw_If_Integer_Is_Lower_Than_Zero (line 222) | [Fact]
        method Should_Throw_If_Integer_Is_Higher_Than_255 (line 233) | [Fact]
      class ConsoleColorToColor (line 245) | public sealed class ConsoleColorToColor
        method Should_Return_Expected_Color (line 247) | [Theory]
      class ColorToConsoleColor (line 274) | public sealed class ColorToConsoleColor
        method Should_Return_Expected_ConsoleColor_For_Known_Color (line 276) | [Theory]
    class TheToMarkupMethod (line 304) | public sealed class TheToMarkupMethod
      method Should_Return_Expected_Markup_For_Default_Color (line 306) | [Fact]
      method Should_Return_Expected_Markup_For_Known_Color (line 316) | [Fact]
      method Should_Return_Expected_Markup_For_Custom_Color (line 326) | [Fact]
    class TheToStringMethod (line 337) | public sealed class TheToStringMethod
      method Should_Return_Color_Name_For_Known_Colors (line 339) | [Fact]
      method Should_Return_Hex_String_For_Unknown_Colors (line 349) | [Fact]

FILE: src/Spectre.Console.Ansi.Tests/Fixtures/AnsiFixture.cs
  class AnsiFixture (line 5) | public sealed class AnsiFixture
    method AnsiFixture (line 15) | public AnsiFixture(AnsiCapabilities? settings = null)

FILE: src/Spectre.Console.Ansi.Tests/StyleTests.cs
  class StyleTests (line 3) | public sealed class StyleTests
    method Should_Convert_From_Color_As_Expected (line 5) | [Fact]
    method Should_Combine_Two_Styles_As_Expected (line 15) | [Fact]
    method Should_Consider_Two_Identical_Styles_Equal (line 31) | [Fact]
    method Should_Not_Consider_Two_Styles_With_Different_Foreground_Colors_Equal (line 45) | [Fact]
    method Should_Not_Consider_Two_Styles_With_Different_Background_Colors_Equal (line 59) | [Fact]
    method Should_Not_Consider_Two_Styles_With_Different_Decorations_Equal (line 73) | [Fact]
    class TheParseMethod (line 87) | public sealed class TheParseMethod
      method Default_Keyword_Should_Return_Default_Style (line 89) | [Fact]
      method Should_Parse_Decoration (line 101) | [Theory]
      method Should_Parse_Background_If_Foreground_Is_Set_To_Default (line 124) | [Fact]
      method Should_Throw_If_Foreground_Is_Set_Twice (line 136) | [Fact]
      method Should_Throw_If_Background_Is_Set_Twice (line 147) | [Fact]
      method Should_Throw_If_Color_Name_Could_Not_Be_Found (line 158) | [Fact]
      method Should_Throw_If_Background_Color_Name_Could_Not_Be_Found (line 169) | [Fact]
      method Should_Parse_Colors_And_Decoration (line 180) | [Fact]
      method Should_Parse_Hex_Colors_Correctly (line 192) | [Theory]
      method Should_Return_Error_If_Hex_Color_Is_Invalid (line 205) | [Theory]
      method Should_Parse_Rgb_Colors_Correctly (line 219) | [Theory]
      method Should_Parse_Colors_Numbers_Correctly (line 231) | [Theory]
      method Should_Return_Error_If_Color_Number_Is_Invalid (line 243) | [Theory]
      method Should_Return_Error_If_Rgb_Color_Is_Invalid (line 256) | [Theory]
    class TheTryParseMethod (line 274) | public sealed class TheTryParseMethod
      method Should_Return_True_If_Parsing_Succeeded (line 276) | [Fact]
      method Should_Return_False_If_Parsing_Failed (line 287) | [Fact]
    class TheToMarkupMethod (line 298) | public sealed class TheToMarkupMethod
      method Should_Return_Expected_Markup_For_Style_With_Foreground_Color (line 300) | [Fact]
      method Should_Return_Expected_Markup_For_Style_With_Foreground_And_Background_Color (line 313) | [Fact]
      method Should_Return_Expected_Markup_For_Style_With_Foreground_And_Background_Color_And_Decoration (line 326) | [Fact]
      method Should_Return_Expected_Markup_For_Style_With_Only_Background_Color (line 339) | [Fact]

FILE: src/Spectre.Console.Ansi/AnsiCapabilities.cs
  class AnsiCapabilities (line 6) | public class AnsiCapabilities : IReadOnlyAnsiCapabilities
    method Create (line 36) | public static AnsiCapabilities Create(TextWriter writer)
    method Create (line 47) | public static AnsiCapabilities Create(TextWriter writer, AnsiWriterSet...
  type IReadOnlyAnsiCapabilities (line 72) | public interface IReadOnlyAnsiCapabilities

FILE: src/Spectre.Console.Ansi/AnsiDetector.cs
  class AnsiDetector (line 5) | internal static class AnsiDetector
    method Detect (line 28) | public static (bool Ansi, bool Legacy) Detect(TextWriter buffer, AnsiS...
    method Detect (line 37) | internal static (bool Ansi, bool Legacy) Detect(
    method Detect (line 75) | private static (bool SupportsAnsi, bool LegacyConsole) Detect(bool std...
    method DetectFromTerm (line 94) | private static (bool SupportsAnsi, bool LegacyConsole) DetectFromTerm()
    class Windows (line 109) | private static class Windows
      method GetConsoleMode (line 123) | [DllImport("kernel32.dll")]
      method SetConsoleMode (line 126) | [DllImport("kernel32.dll")]
      method GetStdHandle (line 129) | [DllImport("kernel32.dll", SetLastError = true)]
      method GetLastError (line 132) | [DllImport("kernel32.dll")]
      method SupportsAnsi (line 135) | public static bool SupportsAnsi(bool upgrade, bool stdError, out boo...

FILE: src/Spectre.Console.Ansi/AnsiMarkup.cs
  class AnsiMarkup (line 6) | public sealed class AnsiMarkup
    method AnsiMarkup (line 14) | public AnsiMarkup(AnsiWriter writer)
    method Write (line 24) | public void Write(string markup, Style? style = null)
    method WriteLine (line 36) | public void WriteLine(string markup)
    method Parse (line 48) | public static IEnumerable<AnsiMarkupSegment> Parse(string markup, Styl...
    method Escape (line 114) | public static string Escape(string? markup)
    method Remove (line 131) | public static string Remove(string? markup)
    method Highlight (line 159) | public static string Highlight(string markup, string query, Style style)
  class AnsiMarkupSegment (line 168) | public sealed class AnsiMarkupSegment
    method AnsiMarkupSegment (line 191) | public AnsiMarkupSegment(string text, Style style, Link? link)
    method ToString (line 199) | public override string ToString()
  type MarkupTokenKind (line 208) | file enum MarkupTokenKind
  class MarkupToken (line 215) | file sealed class MarkupToken
    method MarkupToken (line 221) | public MarkupToken(MarkupTokenKind kind, string value, int position)
  class MarkupTokenizer (line 229) | file sealed class MarkupTokenizer : IDisposable
    method MarkupTokenizer (line 235) | public MarkupTokenizer(string text)
    method Dispose (line 240) | public void Dispose()
    method MoveNext (line 245) | public bool MoveNext()
    method ReadText (line 259) | private MarkupToken ReadText()
    method ReadMarkup (line 290) | private MarkupToken ReadMarkup()
    method ThrowMalformed (line 378) | [DoesNotReturn]

FILE: src/Spectre.Console.Ansi/AnsiMarkupHighlighter.cs
  class AnsiMarkupHighlighter (line 3) | internal static class AnsiMarkupHighlighter
    method Highlight (line 5) | public static string Highlight(string markup, string query, Style style)
    method MergeSegments (line 91) | private static List<AnsiMarkupSegment> MergeSegments(IEnumerable<AnsiM...
  class IndexedMarkupSegment (line 120) | file sealed class IndexedMarkupSegment
    method IndexedMarkupSegment (line 130) | private IndexedMarkupSegment(AnsiMarkupSegment segment, int startIndex)
    method Parse (line 136) | public static IndexedMarkupSegment[] Parse(string value)

FILE: src/Spectre.Console.Ansi/AnsiMarkupTagParser.cs
  class AnsiMarkupTagParser (line 3) | internal static class AnsiMarkupTagParser
    method Parse (line 5) | public static (Style Style, Link? Link) Parse(string text)
    method TryParse (line 16) | public static bool TryParse(string text, [NotNullWhen(true)] out (Styl...
    method Parse (line 22) | private static (Style Style, Link? Link)? Parse(string text, out strin...
    method ParseHexColor (line 149) | private static Color? ParseHexColor(string hex, out string? error)
    method ParseRgbColor (line 186) | private static Color? ParseRgbColor(string rgb, out string? error)

FILE: src/Spectre.Console.Ansi/AnsiSupport.cs
  type AnsiSupport (line 6) | public enum AnsiSupport

FILE: src/Spectre.Console.Ansi/AnsiWriter.cs
  class AnsiWriter (line 6) | public sealed class AnsiWriter
    method AnsiWriter (line 22) | public AnsiWriter(TextWriter output)
    method AnsiWriter (line 36) | public AnsiWriter(TextWriter output, AnsiCapabilities capabilities)
    method Write (line 50) | public AnsiWriter Write(string text)
    method Write (line 61) | public AnsiWriter Write(int value)
    method Write (line 74) | public AnsiWriter Write(string text, Style style, Link? link = null)
    method WriteLine (line 116) | public AnsiWriter WriteLine()
    method WriteLine (line 127) | public AnsiWriter WriteLine(string text)
    method WriteLine (line 142) | public AnsiWriter WriteLine(string text, Style style, Link? link = null)
    method Style (line 156) | public AnsiWriter Style(Style style, Link? link = null)
    method ResetStyle (line 183) | public AnsiWriter ResetStyle()
    method Decoration (line 202) | public AnsiWriter Decoration(Decoration decoration)
    method Background (line 223) | public AnsiWriter Background(Color color)
    method Foreground (line 244) | public AnsiWriter Foreground(Color color)
    method BeginLink (line 265) | public AnsiWriter BeginLink(Link link)
    method BeginLink (line 280) | public AnsiWriter BeginLink(string link, int? linkId = null)
    method EndLink (line 304) | public AnsiWriter EndLink()
    method CursorPosition (line 325) | public AnsiWriter CursorPosition(int row, int column)
    method CursorHome (line 338) | public AnsiWriter CursorHome()
    method CursorUp (line 354) | public AnsiWriter CursorUp(int steps)
    method CursorDown (line 371) | public AnsiWriter CursorDown(int steps)
    method CursorRight (line 387) | public AnsiWriter CursorRight(int steps)
    method CursorLeft (line 403) | public AnsiWriter CursorLeft(int steps)
    method ShowCursor (line 416) | public AnsiWriter ShowCursor()
    method HideCursor (line 429) | public AnsiWriter HideCursor()
    method SaveCursor (line 443) | public AnsiWriter SaveCursor()
    method RestoreCursor (line 457) | public AnsiWriter RestoreCursor()
    method CursorHorizontalAbsolute (line 471) | public AnsiWriter CursorHorizontalAbsolute(int position)
    method EnterAltScreen (line 481) | public AnsiWriter EnterAltScreen()
    method ExitAltScreen (line 491) | public AnsiWriter ExitAltScreen()
    method EraseInLine (line 523) | public AnsiWriter EraseInLine(int mode = 0)
    method EraseInDisplay (line 553) | public AnsiWriter EraseInDisplay(int mode = 0)
    method ClearScrollback (line 563) | public AnsiWriter ClearScrollback()
    method WriteSgr (line 569) | private bool WriteSgr(params List<byte> codes)
    method WriteCsi (line 580) | private bool WriteCsi(int value, char terminator, bool decPrivateMode ...
    method WriteCsi (line 585) | private bool WriteCsi(string parameters, char terminator, bool decPriv...
    method WriteCsi (line 590) | private bool WriteCsi(string parameters, bool decPrivateMode = false)
    method WriteOsc (line 601) | private bool WriteOsc(string parameters)
  class AnsiCodeBuilder (line 613) | file static class AnsiCodeBuilder
    method Build (line 615) | public static IEnumerable<byte> Build(Decoration decoration)
    method Build (line 663) | public static IEnumerable<byte> Build(ColorSystem system, Color color,...
    method GetThreeBit (line 681) | private static IEnumerable<byte> GetThreeBit(Color color, bool foregro...
    method GetFourBit (line 695) | private static IEnumerable<byte> GetFourBit(Color color, bool foreground)
    method GetEightBit (line 709) | private static IEnumerable<byte> GetEightBit(Color color, bool foregro...
    method GetTrueColor (line 718) | private static IEnumerable<byte> GetTrueColor(Color color, bool foregr...

FILE: src/Spectre.Console.Ansi/AnsiWriterSettings.cs
  class AnsiWriterSettings (line 6) | public sealed class AnsiWriterSettings

FILE: src/Spectre.Console.Ansi/Color.cs
  type Color (line 6) | public readonly partial struct Color : IEquatable<Color>
    method Color (line 44) | public Color(byte red, byte green, byte blue)
    method Blend (line 59) | public Color Blend(Color other, float factor)
    method ToHex (line 72) | public string ToHex()
    method ExactOrClosest (line 87) | public Color ExactOrClosest(ColorSystem system)
    method GetHashCode (line 93) | public override int GetHashCode()
    method Equals (line 106) | public override bool Equals(object? obj)
    method Equals (line 112) | public bool Equals(Color other)
    method ToConsoleColor (line 172) | public static ConsoleColor ToConsoleColor(Color color)
    method FromInt32 (line 216) | public static Color FromInt32(int number)
    method FromHex (line 226) | public static Color FromHex(string hex)
    method TryFromHex (line 255) | public static bool TryFromHex(string hex, out Color color)
    method FromName (line 274) | public static Color? FromName(string name)
    method FromConsoleColor (line 284) | public static Color FromConsoleColor(ConsoleColor color)
    method ToMarkup (line 312) | public string ToMarkup()
    method ToString (line 332) | public override string ToString()

FILE: src/Spectre.Console.Ansi/ColorPalette.cs
  class ColorPalette (line 3) | internal static partial class ColorPalette
    method ColorPalette (line 9) | static ColorPalette()
    method ExactOrClosest (line 16) | public static Color ExactOrClosest(ColorSystem system, Color color)
    method Exact (line 22) | private static Color? Exact(ColorSystem system, Color color)
    method Closest (line 43) | private static Color Closest(ColorSystem system, Color color)

FILE: src/Spectre.Console.Ansi/ColorSystem.cs
  type ColorSystem (line 6) | public enum ColorSystem

FILE: src/Spectre.Console.Ansi/ColorSystemDetector.cs
  class ColorSystemDetector (line 3) | internal static class ColorSystemDetector
    method Detect (line 6) | public static ColorSystem Detect(bool supportsAnsi)
    method GetWindowsVersionInformation (line 57) | private static bool GetWindowsVersionInformation(out int major, out in...

FILE: src/Spectre.Console.Ansi/ColorSystemSupport.cs
  type ColorSystemSupport (line 6) | public enum ColorSystemSupport

FILE: src/Spectre.Console.Ansi/ColorTable.cs
  class ColorTable (line 3) | internal static partial class ColorTable
    method ColorTable (line 8) | static ColorTable()
    method GetColor (line 19) | public static Color GetColor(int number)
    method GetColor (line 29) | public static Color? GetColor(string name)
    method GetName (line 44) | public static string? GetName(int number)

FILE: src/Spectre.Console.Ansi/Constants.cs
  class Constants (line 3) | internal static class Constants

FILE: src/Spectre.Console.Ansi/Decoration.cs
  type Decoration (line 9) | [Flags]

FILE: src/Spectre.Console.Ansi/DecorationTable.cs
  class DecorationTable (line 3) | internal static class DecorationTable
    method DecorationTable (line 8) | static DecorationTable()
    method GetDecoration (line 44) | public static Decoration? GetDecoration(string name)
    method GetMarkupNames (line 50) | public static List<string> GetMarkupNames(Decoration decoration)

FILE: src/Spectre.Console.Ansi/Generated/Backport.System.Threading.Lock.SourceGenerator/Backport.System.Threading.Lock.SourceGenerator.Generator/Backport.System.Threading.Lock.SourceGenerator.Lock.cs
  class Lock (line 24) | internal
    method Enter (line 44) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method TryEnter (line 53) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method TryEnter (line 66) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method TryEnter (line 77) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Exit (line 84) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method EnterScope (line 102) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    type Scope (line 112) | public ref struct Scope(Lock @lock)
      method Dispose (line 124) | [MethodImpl(MethodImplOptions.AggressiveInlining)]

FILE: src/Spectre.Console.Ansi/Generated/Backport.System.Threading.Lock.SourceGenerator/Backport.System.Threading.Lock.SourceGenerator.Generator/Backport.System.Threading.Lock.SourceGenerator.LockFactory.cs
  class LockFactory (line 22) | public static class LockFactory
    method Create (line 29) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Create (line 52) | public static Lock Create() => new();
  class LockFactory (line 38) | internal
    method Create (line 29) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Create (line 52) | public static Lock Create() => new();

FILE: src/Spectre.Console.Ansi/Generated/Backport.System.Threading.Lock.SourceGenerator/Backport.System.Threading.Lock.SourceGenerator.Generator/Backport.System.Threading.Lock.SourceGenerator.ThreadAbortableLock.cs
  method Lock (line 41) | internal Lock()
  method Enter (line 62) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
  method TryEnter (line 73) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
  method TryEnter (line 88) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
  method TryEnter (line 101) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
  method Exit (line 110) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
  method EnterScope (line 132) | [Obsolete("This method is a best-effort at hardening against thread abor...
  method EnterScope (line 152) | public Scope EnterScope()
  type Scope (line 162) | public ref struct Scope(Lock @lock)
    method Dispose (line 177) | public readonly void Dispose() => @lock.Exit();

FILE: src/Spectre.Console.Ansi/Generated/Spectre.Console.SourceGenerator/Spectre.Console.SourceGenerator.Colors.ColorGenerator/Color.Generated.g.cs
  type Color (line 17) | public partial struct Color
    method Color (line 19) | internal Color(byte number, byte red, byte green, byte blue, bool isDe...

FILE: src/Spectre.Console.Ansi/Generated/Spectre.Console.SourceGenerator/Spectre.Console.SourceGenerator.Colors.ColorGenerator/ColorPalette.Generated.g.cs
  class ColorPalette (line 14) | internal static partial class ColorPalette
    method GenerateLegacyPalette (line 16) | private static List<Color> GenerateLegacyPalette()
    method GenerateStandardPalette (line 31) | private static List<Color> GenerateStandardPalette(IReadOnlyList<Color...
    method GenerateEightBitPalette (line 46) | private static List<Color> GenerateEightBitPalette(IReadOnlyList<Color...

FILE: src/Spectre.Console.Ansi/Generated/Spectre.Console.SourceGenerator/Spectre.Console.SourceGenerator.Colors.ColorGenerator/ColorTable.Generated.g.cs
  class ColorTable (line 15) | internal static partial class ColorTable
    method GenerateTable (line 17) | private static Dictionary<string, int> GenerateTable()

FILE: src/Spectre.Console.Ansi/Link.cs
  class Link (line 7) | public sealed class Link(string url)

FILE: src/Spectre.Console.Ansi/Style.cs
  type Style (line 6) | public readonly record struct Style
  class StyleExtensions (line 177) | public static class StyleExtensions
    method Foreground (line 186) | public static Style Foreground(this Style style, Color color)
    method Background (line 201) | public static Style Background(this Style style, Color color)
    method Decoration (line 216) | public static Style Decoration(this Style style, Decoration decoration)
    method Combine (line 224) | internal static Style Combine(this Style? style, IEnumerable<Style> so...

FILE: src/Spectre.Console.Ansi/Utilities/ConsoleExtensions.cs
  class SystemConsoleExtensions (line 9) | public static class SystemConsoleExtensions
    method GetAnsiWriter (line 15) | private static (AnsiWriter, AnsiMarkup) GetAnsiWriter()
    method extension (line 22) | extension(System.Console)

FILE: src/Spectre.Console.Ansi/Utilities/EnumHelpers.cs
  class EnumUtils (line 3) | internal static class EnumUtils
    method GetValues (line 5) | public static T[] GetValues<T>()

FILE: src/Spectre.Console.Ansi/Utilities/EnumerableExtensions.cs
  class EnumerableExtensions (line 3) | internal static class EnumerableExtensions
    method ForEach (line 5) | public static void ForEach<T>(this IEnumerable<T> source, Action<T> ac...

FILE: src/Spectre.Console.Ansi/Utilities/StringBuffer.cs
  class StringBuffer (line 3) | internal sealed class StringBuffer : IDisposable
    method StringBuffer (line 11) | public StringBuffer(string text)
    method Dispose (line 21) | public void Dispose()
    method Peek (line 26) | public char Peek()
    method Read (line 36) | public char Read()

FILE: src/Spectre.Console.Ansi/Utilities/StringExtensions.cs
  class StringExtensions (line 6) | public static class StringExtensions
    method EscapeMarkup (line 13) | public static string EscapeMarkup(this string? text)
    method RemoveMarkup (line 23) | public static string RemoveMarkup(this string? text)
    method ReplaceExact (line 28) | internal static string ReplaceExact(this string text, string oldValue,...
    method ContainsExact (line 37) | internal static bool ContainsExact(this string text, string value)
    method Contains (line 47) | internal static bool Contains(this string target, string value, System...

FILE: src/Spectre.Console.Ansi/Utilities/TextWriterExtensions.cs
  class TextWriterExtensions (line 3) | internal static class TextWriterExtensions
    method IsStandardOut (line 5) | public static bool IsStandardOut(this TextWriter writer)
    method IsStandardError (line 17) | public static bool IsStandardError(this TextWriter writer)

FILE: src/Spectre.Console.SourceGenerator/Colors/ColorEmitter.cs
  class ColorEmitter (line 10) | internal static class ColorEmitter
    method EmitColorProperties (line 27) | public static string EmitColorProperties(EquatableArray<ColorModel> co...
    method EmitColorPalette (line 87) | public static string EmitColorPalette(EquatableArray<ColorModel> colors)
    method EmitPaletteMethod (line 124) | private static void EmitPaletteMethod(IndentedTextWriter writer, strin...
    method EmitStandardPaletteMethod (line 165) | private static void EmitStandardPaletteMethod(IndentedTextWriter write...
    method EmitEightBitPaletteMethod (line 191) | private static void EmitEightBitPaletteMethod(IndentedTextWriter write...
    method EmitColorTable (line 220) | public static string EmitColorTable(EquatableArray<ColorModel> colors)

FILE: src/Spectre.Console.SourceGenerator/Colors/ColorGenerator.cs
  class ColorGenerator (line 11) | [Generator]
    method Initialize (line 15) | public void Initialize(IncrementalGeneratorInitializationContext context)

FILE: src/Spectre.Console.SourceGenerator/Colors/ColorModel.cs
  type ColorModel (line 10) | internal sealed record ColorModel(
  class ColorParser (line 21) | internal static class ColorParser
    method ParseAll (line 26) | public static EquatableArray<ColorModel> ParseAll(string json)
    method GetUniqueName (line 62) | private static string GetUniqueName(string name, Dictionary<string, in...

FILE: src/Spectre.Console.SourceGenerator/Emojis/EmojiEmitter.cs
  class EmojiEmitter (line 11) | internal static class EmojiEmitter
    method CodeToEmoji (line 31) | private static string CodeToEmoji(string code)
    method Emit (line 61) | public static string Emit(EquatableArray<EmojiModel> emojis)

FILE: src/Spectre.Console.SourceGenerator/Emojis/EmojiGenerator.cs
  class EmojiGenerator (line 11) | [Generator]
    method Initialize (line 15) | public void Initialize(IncrementalGeneratorInitializationContext context)

FILE: src/Spectre.Console.SourceGenerator/Emojis/EmojiModel.cs
  type EmojiModel (line 12) | internal sealed record EmojiModel(
  class EmojiParser (line 22) | internal static class EmojiParser
    method ParseAll (line 28) | public static EquatableArray<EmojiModel> ParseAll(string json)
    method TransformName (line 77) | private static string TransformName(string name)
    method TransformHexcode (line 147) | private static string TransformHexcode(string hexcode)
    method Pascalize (line 155) | private static string Pascalize(string input)
    method Humanize (line 185) | private static string Humanize(string input)

FILE: src/Spectre.Console.SourceGenerator/EquatableArray.cs
  type EquatableArray (line 12) | internal readonly struct EquatableArray<T> : IEquatable<EquatableArray<T...
    method EquatableArray (line 25) | public EquatableArray(ImmutableArray<T> array) => _array = array;
    method EquatableArray (line 30) | public EquatableArray(IEnumerable<T> items) => _array = [.. items];
    method Equals (line 48) | public bool Equals(EquatableArray<T> other)
    method Equals (line 77) | public override bool Equals(object? obj) => obj is EquatableArray<T> o...
    method GetHashCode (line 80) | public override int GetHashCode()
    method GetEnumerator (line 97) | public IEnumerator<T> GetEnumerator() =>
    method GetEnumerator (line 101) | IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();

FILE: src/Spectre.Console.SourceGenerator/Spinners/SpinnerEmitter.cs
  class SpinnerEmitter (line 9) | internal static class SpinnerEmitter
    method Emit (line 29) | public static string Emit(EquatableArray<SpinnerModel> spinners)
    method EmitSpinnerClass (line 79) | private static void EmitSpinnerClass(IndentedTextWriter writer, Spinne...

FILE: src/Spectre.Console.SourceGenerator/Spinners/SpinnerGenerator.cs
  class SpinnerGenerator (line 11) | [Generator]
    method Initialize (line 15) | public void Initialize(IncrementalGeneratorInitializationContext context)

FILE: src/Spectre.Console.SourceGenerator/Spinners/SpinnerModel.cs
  type SpinnerModel (line 10) | internal sealed record SpinnerModel(
  class SpinnerParser (line 20) | internal static class SpinnerParser
    method ParseAll (line 26) | public static EquatableArray<SpinnerModel> ParseAll(string defaultJson...
    method ParseSpinners (line 39) | private static void ParseSpinners(string json, List<SpinnerModel> spin...
    method Pascalize (line 71) | private static string Pascalize(string input)

FILE: src/Spectre.Console.Testing/Extensions/ShouldlyExtensions.cs
  class ShouldlyExtensions (line 6) | public static class ShouldlyExtensions
    method And (line 18) | [DebuggerStepThrough]

FILE: src/Spectre.Console.Testing/Extensions/StringExtensions.cs
  class StringExtensions (line 6) | public static class StringExtensions
    method TrimLines (line 13) | public static string TrimLines(this string value)
    method NormalizeLineEndings (line 34) | public static string NormalizeLineEndings(this string value)

FILE: src/Spectre.Console.Testing/Extensions/StyleExtensions.cs
  class StyleExtensions (line 6) | public static class StyleExtensions
    method SetColor (line 15) | public static Style SetColor(this Style style, Color color, bool foreg...

FILE: src/Spectre.Console.Testing/Extensions/TestConsoleExtensions.cs
  class TestConsoleExtensions (line 6) | public static partial class TestConsoleExtensions
    method Colors (line 14) | public static TestConsole Colors(this TestConsole console, ColorSystem...
    method SupportsAnsi (line 26) | public static TestConsole SupportsAnsi(this TestConsole console, bool ...
    method SupportsUnicode (line 38) | public static TestConsole SupportsUnicode(this TestConsole console, bo...
    method Interactive (line 49) | public static TestConsole Interactive(this TestConsole console)
    method Width (line 61) | public static TestConsole Width(this TestConsole console, int width)
    method Height (line 73) | public static TestConsole Height(this TestConsole console, int width)
    method Size (line 85) | public static TestConsole Size(this TestConsole console, Size size)
    method EmitAnsiSequences (line 97) | public static TestConsole EmitAnsiSequences(this TestConsole console)

FILE: src/Spectre.Console.Testing/Internal/NoopCursor.cs
  class NoopCursor (line 3) | internal sealed class NoopCursor : IAnsiConsoleCursor
    method Move (line 5) | public void Move(CursorDirection direction, int steps)
    method SetPosition (line 9) | public void SetPosition(int column, int line)
    method Show (line 13) | public void Show(bool show)

FILE: src/Spectre.Console.Testing/Internal/NoopExclusivityMode.cs
  class NoopExclusivityMode (line 3) | internal sealed class NoopExclusivityMode : IExclusivityMode
    method Run (line 5) | public T Run<T>(Func<T> func)
    method RunAsync (line 10) | public async Task<T> RunAsync<T>(Func<Task<T>> func)

FILE: src/Spectre.Console.Testing/TestCapabilities.cs
  class TestCapabilities (line 6) | public sealed class TestCapabilities : IReadOnlyCapabilities
    method CreateRenderContext (line 34) | public RenderOptions CreateRenderContext(IAnsiConsole console)

FILE: src/Spectre.Console.Testing/TestConsole.cs
  class TestConsole (line 6) | public sealed class TestConsole : IAnsiConsole, IDisposable
    method TestConsole (line 51) | public TestConsole()
    method Dispose (line 79) | public void Dispose()
    method Clear (line 85) | public void Clear(bool home)
    method Write (line 91) | public void Write(IRenderable renderable)
    method WriteAnsi (line 112) | public void WriteAnsi(Action<AnsiWriter> action)
    method SetCursor (line 117) | internal void SetCursor(IAnsiConsoleCursor? cursor)

FILE: src/Spectre.Console.Testing/TestConsoleInput.cs
  class TestConsoleInput (line 6) | public sealed class TestConsoleInput : IAnsiConsoleInput
    method TestConsoleInput (line 13) | public TestConsoleInput()
    method PushText (line 22) | public void PushText(string input)
    method PushTextWithEnter (line 36) | public void PushTextWithEnter(string input)
    method PushCharacter (line 46) | public void PushCharacter(char input)
    method PushKey (line 56) | public void PushKey(ConsoleKey input)
    method PushKey (line 65) | public void PushKey(ConsoleKeyInfo consoleKeyInfo)
    method IsKeyAvailable (line 71) | public bool IsKeyAvailable()
    method ReadKey (line 77) | public ConsoleKeyInfo? ReadKey(bool intercept)
    method ReadKeyAsync (line 88) | public Task<ConsoleKeyInfo?> ReadKeyAsync(bool intercept, Cancellation...

FILE: src/Spectre.Console.Tests/Data/Exceptions.cs
  class TestExceptions (line 3) | public static class TestExceptions
    method MethodThatThrows (line 5) | public static bool MethodThatThrows(int? number) => throw new InvalidO...
    method GenericMethodThatThrows (line 7) | public static bool GenericMethodThatThrows<T0, T1, TRet>(int? number) ...
    method MethodThatThrowsGenericException (line 9) | public static bool MethodThatThrowsGenericException<T>() => throw new ...
    method ThrowWithInnerException (line 11) | public static void ThrowWithInnerException()
    method ThrowWithGenericInnerException (line 23) | public static void ThrowWithGenericInnerException()
    method GenericMethodWithOutThatThrows (line 35) | public static List<T> GenericMethodWithOutThatThrows<T>(out List<T> fi...
    method GetTuplesWithInnerException (line 41) | public static (string Key, List<T> Values) GetTuplesWithInnerException...

FILE: src/Spectre.Console.Tests/Extensions/ConsoleKeyExtensions.cs
  class ConsoleKeyExtensions (line 3) | public static class ConsoleKeyExtensions
    method ToConsoleKeyInfo (line 5) | public static ConsoleKeyInfo ToConsoleKeyInfo(this ConsoleKey key)

FILE: src/Spectre.Console.Tests/Extensions/StreamExtensions.cs
  class StreamExtensions (line 3) | public static class StreamExtensions
    method ReadText (line 5) | public static string ReadText(this Stream stream)

FILE: src/Spectre.Console.Tests/Legacy/Color.Generated.cs
  type Color (line 6) | public partial struct Color : IEquatable<Color>
    method Color (line 13) | static Color()
    method Color (line 49) | public Color(byte red, byte green, byte blue)
    method Equals (line 59) | public bool Equals(Color other)
    method Color (line 71) | internal Color(byte number, byte red, byte green, byte blue, bool isDe...
  type Color (line 69) | public partial struct Color
    method Color (line 13) | static Color()
    method Color (line 49) | public Color(byte red, byte green, byte blue)
    method Equals (line 59) | public bool Equals(Color other)
    method Color (line 71) | internal Color(byte number, byte red, byte green, byte blue, bool isDe...

FILE: src/Spectre.Console.Tests/Legacy/Emoji.Generated.cs
  class Emoji (line 18) | public static partial class Emoji
    class Known (line 1352) | public static class Known

FILE: src/Spectre.Console.Tests/Legacy/Spinner.Generated.cs
  class Spinner (line 22) | public abstract partial class Spinner
    class DefaultSpinner (line 43) | private sealed class DefaultSpinner : Spinner
    class AsciiSpinner (line 59) | private sealed class AsciiSpinner : Spinner
    class DotsSpinner (line 75) | private sealed class DotsSpinner : Spinner
    class Dots2Spinner (line 93) | private sealed class Dots2Spinner : Spinner
    class Dots3Spinner (line 109) | private sealed class Dots3Spinner : Spinner
    class Dots4Spinner (line 127) | private sealed class Dots4Spinner : Spinner
    class Dots5Spinner (line 149) | private sealed class Dots5Spinner : Spinner
    class Dots6Spinner (line 174) | private sealed class Dots6Spinner : Spinner
    class Dots7Spinner (line 206) | private sealed class Dots7Spinner : Spinner
    class Dots8Spinner (line 238) | private sealed class Dots8Spinner : Spinner
    class Dots9Spinner (line 275) | private sealed class Dots9Spinner : Spinner
    class Dots10Spinner (line 291) | private sealed class Dots10Spinner : Spinner
    class Dots11Spinner (line 306) | private sealed class Dots11Spinner : Spinner
    class Dots12Spinner (line 322) | private sealed class Dots12Spinner : Spinner
    class Dots13Spinner (line 386) | private sealed class Dots13Spinner : Spinner
    class Dots14Spinner (line 402) | private sealed class Dots14Spinner : Spinner
    class Dots8BitSpinner (line 422) | private sealed class Dots8BitSpinner : Spinner
    class DotsCircleSpinner (line 686) | private sealed class DotsCircleSpinner : Spinner
    class SandSpinner (line 702) | private sealed class SandSpinner : Spinner
    class LineSpinner (line 745) | private sealed class LineSpinner : Spinner
    class Line2Spinner (line 757) | private sealed class Line2Spinner : Spinner
    class PipeSpinner (line 771) | private sealed class PipeSpinner : Spinner
    class SimpleDotsSpinner (line 787) | private sealed class SimpleDotsSpinner : Spinner
    class SimpleDotsScrollingSpinner (line 799) | private sealed class SimpleDotsScrollingSpinner : Spinner
    class StarSpinner (line 813) | private sealed class StarSpinner : Spinner
    class Star2Spinner (line 827) | private sealed class Star2Spinner : Spinner
    class FlipSpinner (line 838) | private sealed class FlipSpinner : Spinner
    class HamburgerSpinner (line 858) | private sealed class HamburgerSpinner : Spinner
    class GrowVerticalSpinner (line 869) | private sealed class GrowVerticalSpinner : Spinner
    class GrowHorizontalSpinner (line 887) | private sealed class GrowHorizontalSpinner : Spinner
    class BalloonSpinner (line 907) | private sealed class BalloonSpinner : Spinner
    class Balloon2Spinner (line 922) | private sealed class Balloon2Spinner : Spinner
    class NoiseSpinner (line 937) | private sealed class NoiseSpinner : Spinner
    class BounceSpinner (line 948) | private sealed class BounceSpinner : Spinner
    class BoxBounceSpinner (line 960) | private sealed class BoxBounceSpinner : Spinner
    class BoxBounce2Spinner (line 972) | private sealed class BoxBounce2Spinner : Spinner
    class TriangleSpinner (line 984) | private sealed class TriangleSpinner : Spinner
    class BinarySpinner (line 996) | private sealed class BinarySpinner : Spinner
    class ArcSpinner (line 1014) | private sealed class ArcSpinner : Spinner
    class CircleSpinner (line 1028) | private sealed class CircleSpinner : Spinner
    class SquareCornersSpinner (line 1039) | private sealed class SquareCornersSpinner : Spinner
    class CircleQuartersSpinner (line 1051) | private sealed class CircleQuartersSpinner : Spinner
    class CircleHalvesSpinner (line 1063) | private sealed class CircleHalvesSpinner : Spinner
    class SquishSpinner (line 1075) | private sealed class SquishSpinner : Spinner
    class ToggleSpinner (line 1085) | private sealed class ToggleSpinner : Spinner
    class Toggle2Spinner (line 1095) | private sealed class Toggle2Spinner : Spinner
    class Toggle3Spinner (line 1105) | private sealed class Toggle3Spinner : Spinner
    class Toggle4Spinner (line 1115) | private sealed class Toggle4Spinner : Spinner
    class Toggle5Spinner (line 1127) | private sealed class Toggle5Spinner : Spinner
    class Toggle6Spinner (line 1137) | private sealed class Toggle6Spinner : Spinner
    class Toggle7Spinner (line 1147) | private sealed class Toggle7Spinner : Spinner
    class Toggle8Spinner (line 1157) | private sealed class Toggle8Spinner : Spinner
    class Toggle9Spinner (line 1167) | private sealed class Toggle9Spinner : Spinner
    class Toggle10Spinner (line 1177) | private sealed class Toggle10Spinner : Spinner
    class Toggle11Spinner (line 1188) | private sealed class Toggle11Spinner : Spinner
    class Toggle12Spinner (line 1198) | private sealed class Toggle12Spinner : Spinner
    class Toggle13Spinner (line 1208) | private sealed class Toggle13Spinner : Spinner
    class ArrowSpinner (line 1219) | private sealed class ArrowSpinner : Spinner
    class Arrow2Spinner (line 1235) | private sealed class Arrow2Spinner : Spinner
    class Arrow3Spinner (line 1251) | private sealed class Arrow3Spinner : Spinner
    class BouncingBarSpinner (line 1265) | private sealed class BouncingBarSpinner : Spinner
    class BouncingBallSpinner (line 1289) | private sealed class BouncingBallSpinner : Spinner
    class SmileySpinner (line 1307) | private sealed class SmileySpinner : Spinner
    class MonkeySpinner (line 1317) | private sealed class MonkeySpinner : Spinner
    class HeartsSpinner (line 1329) | private sealed class HeartsSpinner : Spinner
    class ClockSpinner (line 1342) | private sealed class ClockSpinner : Spinner
    class EarthSpinner (line 1362) | private sealed class EarthSpinner : Spinner
    class MaterialSpinner (line 1373) | private sealed class MaterialSpinner : Spinner
    class MoonSpinner (line 1473) | private sealed class MoonSpinner : Spinner
    class RunnerSpinner (line 1489) | private sealed class RunnerSpinner : Spinner
    class PongSpinner (line 1499) | private sealed class PongSpinner : Spinner
    class SharkSpinner (line 1537) | private sealed class SharkSpinner : Spinner
    class DqpbSpinner (line 1571) | private sealed class DqpbSpinner : Spinner
    class WeatherSpinner (line 1583) | private sealed class WeatherSpinner : Spinner
    class ChristmasSpinner (line 1614) | private sealed class ChristmasSpinner : Spinner
    class GrenadeSpinner (line 1624) | private sealed class GrenadeSpinner : Spinner
    class PointSpinner (line 1646) | private sealed class PointSpinner : Spinner
    class LayerSpinner (line 1659) | private sealed class LayerSpinner : Spinner
    class BetaWaveSpinner (line 1670) | private sealed class BetaWaveSpinner : Spinner
    class FingerDanceSpinner (line 1685) | private sealed class FingerDanceSpinner : Spinner
    class FistBumpSpinner (line 1699) | private sealed class FistBumpSpinner : Spinner
    class SoccerHeaderSpinner (line 1714) | private sealed class SoccerHeaderSpinner : Spinner
    class MindblownSpinner (line 1734) | private sealed class MindblownSpinner : Spinner
    class SpeakerSpinner (line 1756) | private sealed class SpeakerSpinner : Spinner
    class OrangePulseSpinner (line 1768) | private sealed class OrangePulseSpinner : Spinner
    class BluePulseSpinner (line 1781) | private sealed class BluePulseSpinner : Spinner
    class OrangeBluePulseSpinner (line 1794) | private sealed class OrangeBluePulseSpinner : Spinner
    class TimeTravelSpinner (line 1812) | private sealed class TimeTravelSpinner : Spinner
    class AestheticSpinner (line 1832) | private sealed class AestheticSpinner : Spinner
    class DwarfFortressSpinner (line 1848) | private sealed class DwarfFortressSpinner : Spinner
    class Known (line 1993) | public static class Known
  class Spinner (line 41) | public abstract partial class Spinner
    class DefaultSpinner (line 43) | private sealed class DefaultSpinner : Spinner
    class AsciiSpinner (line 59) | private sealed class AsciiSpinner : Spinner
    class DotsSpinner (line 75) | private sealed class DotsSpinner : Spinner
    class Dots2Spinner (line 93) | private sealed class Dots2Spinner : Spinner
    class Dots3Spinner (line 109) | private sealed class Dots3Spinner : Spinner
    class Dots4Spinner (line 127) | private sealed class Dots4Spinner : Spinner
    class Dots5Spinner (line 149) | private sealed class Dots5Spinner : Spinner
    class Dots6Spinner (line 174) | private sealed class Dots6Spinner : Spinner
    class Dots7Spinner (line 206) | private sealed class Dots7Spinner : Spinner
    class Dots8Spinner (line 238) | private sealed class Dots8Spinner : Spinner
    class Dots9Spinner (line 275) | private sealed class Dots9Spinner : Spinner
    class Dots10Spinner (line 291) | private sealed class Dots10Spinner : Spinner
    class Dots11Spinner (line 306) | private sealed class Dots11Spinner : Spinner
    class Dots12Spinner (line 322) | private sealed class Dots12Spinner : Spinner
    class Dots13Spinner (line 386) | private sealed class Dots13Spinner : Spinner
    class Dots14Spinner (line 402) | private sealed class Dots14Spinner : Spinner
    class Dots8BitSpinner (line 422) | private sealed class Dots8BitSpinner : Spinner
    class DotsCircleSpinner (line 686) | private sealed class DotsCircleSpinner : Spinner
    class SandSpinner (line 702) | private sealed class SandSpinner : Spinner
    class LineSpinner (line 745) | private sealed class LineSpinner : Spinner
    class Line2Spinner (line 757) | private sealed class Line2Spinner : Spinner
    class PipeSpinner (line 771) | private sealed class PipeSpinner : Spinner
    class SimpleDotsSpinner (line 787) | private sealed class SimpleDotsSpinner : Spinner
    class SimpleDotsScrollingSpinner (line 799) | private sealed class SimpleDotsScrollingSpinner : Spinner
    class StarSpinner (line 813) | private sealed class StarSpinner : Spinner
    class Star2Spinner (line 827) | private sealed class Star2Spinner : Spinner
    class FlipSpinner (line 838) | private sealed class FlipSpinner : Spinner
    class HamburgerSpinner (line 858) | private sealed class HamburgerSpinner : Spinner
    class GrowVerticalSpinner (line 869) | private sealed class GrowVerticalSpinner : Spinner
    class GrowHorizontalSpinner (line 887) | private sealed class GrowHorizontalSpinner : Spinner
    class BalloonSpinner (line 907) | private sealed class BalloonSpinner : Spinner
    class Balloon2Spinner (line 922) | private sealed class Balloon2Spinner : Spinner
    class NoiseSpinner (line 937) | private sealed class NoiseSpinner : Spinner
    class BounceSpinner (line 948) | private sealed class BounceSpinner : Spinner
    class BoxBounceSpinner (line 960) | private sealed class BoxBounceSpinner : Spinner
    class BoxBounce2Spinner (line 972) | private sealed class BoxBounce2Spinner : Spinner
    class TriangleSpinner (line 984) | private sealed class TriangleSpinner : Spinner
    class BinarySpinner (line 996) | private sealed class BinarySpinner : Spinner
    class ArcSpinner (line 1014) | private sealed class ArcSpinner : Spinner
    class CircleSpinner (line 1028) | private sealed class CircleSpinner : Spinner
    class SquareCornersSpinner (line 1039) | private sealed class SquareCornersSpinner : Spinner
    class CircleQuartersSpinner (line 1051) | private sealed class CircleQuartersSpinner : Spinner
    class CircleHalvesSpinner (line 1063) | private sealed class CircleHalvesSpinner : Spinner
    class SquishSpinner (line 1075) | private sealed class SquishSpinner : Spinner
    class ToggleSpinner (line 1085) | private sealed class ToggleSpinner : Spinner
    class Toggle2Spinner (line 1095) | private sealed class Toggle2Spinner : Spinner
    class Toggle3Spinner (line 1105) | private sealed class Toggle3Spinner : Spinner
    class Toggle4Spinner (line 1115) | private sealed class Toggle4Spinner : Spinner
    class Toggle5Spinner (line 1127) | private sealed class Toggle5Spinner : Spinner
    class Toggle6Spinner (line 1137) | private sealed class Toggle6Spinner : Spinner
    class Toggle7Spinner (line 1147) | private sealed class Toggle7Spinner : Spinner
    class Toggle8Spinner (line 1157) | private sealed class Toggle8Spinner : Spinner
    class Toggle9Spinner (line 1167) | private sealed class Toggle9Spinner : Spinner
    class Toggle10Spinner (line 1177) | private sealed class Toggle10Spinner : Spinner
    class Toggle11Spinner (line 1188) | private sealed class Toggle11Spinner : Spinner
    class Toggle12Spinner (line 1198) | private sealed class Toggle12Spinner : Spinner
    class Toggle13Spinner (line 1208) | private sealed class Toggle13Spinner : Spinner
    class ArrowSpinner (line 1219) | private sealed class ArrowSpinner : Spinner
    class Arrow2Spinner (line 1235) | private sealed class Arrow2Spinner : Spinner
    class Arrow3Spinner (line 1251) | private sealed class Arrow3Spinner : Spinner
    class BouncingBarSpinner (line 1265) | private sealed class BouncingBarSpinner : Spinner
    class BouncingBallSpinner (line 1289) | private sealed class BouncingBallSpinner : Spinner
    class SmileySpinner (line 1307) | private sealed class SmileySpinner : Spinner
    class MonkeySpinner (line 1317) | private sealed class MonkeySpinner : Spinner
    class HeartsSpinner (line 1329) | private sealed class HeartsSpinner : Spinner
    class ClockSpinner (line 1342) | private sealed class ClockSpinner : Spinner
    class EarthSpinner (line 1362) | private sealed class EarthSpinner : Spinner
    class MaterialSpinner (line 1373) | private sealed class MaterialSpinner : Spinner
    class MoonSpinner (line 1473) | private sealed class MoonSpinner : Spinner
    class RunnerSpinner (line 1489) | private sealed class RunnerSpinner : Spinner
    class PongSpinner (line 1499) | private sealed class PongSpinner : Spinner
    class SharkSpinner (line 1537) | private sealed class SharkSpinner : Spinner
    class DqpbSpinner (line 1571) | private sealed class DqpbSpinner : Spinner
    class WeatherSpinner (line 1583) | private sealed class WeatherSpinner : Spinner
    class ChristmasSpinner (line 1614) | private sealed class ChristmasSpinner : Spinner
    class GrenadeSpinner (line 1624) | private sealed class GrenadeSpinner : Spinner
    class PointSpinner (line 1646) | private sealed class PointSpinner : Spinner
    class LayerSpinner (line 1659) | private sealed class LayerSpinner : Spinner
    class BetaWaveSpinner (line 1670) | private sealed class BetaWaveSpinner : Spinner
    class FingerDanceSpinner (line 1685) | private sealed class FingerDanceSpinner : Spinner
    class FistBumpSpinner (line 1699) | private sealed class FistBumpSpinner : Spinner
    class SoccerHeaderSpinner (line 1714) | private sealed class SoccerHeaderSpinner : Spinner
    class MindblownSpinner (line 1734) | private sealed class MindblownSpinner : Spinner
    class SpeakerSpinner (line 1756) | private sealed class SpeakerSpinner : Spinner
    class OrangePulseSpinner (line 1768) | private sealed class OrangePulseSpinner : Spinner
    class BluePulseSpinner (line 1781) | private sealed class BluePulseSpinner : Spinner
    class OrangeBluePulseSpinner (line 1794) | private sealed class OrangeBluePulseSpinner : Spinner
    class TimeTravelSpinner (line 1812) | private sealed class TimeTravelSpinner : Spinner
    class AestheticSpinner (line 1832) | private sealed class AestheticSpinner : Spinner
    class DwarfFortressSpinner (line 1848) | private sealed class DwarfFortressSpinner : Spinner
    class Known (line 1993) | public static class Known

FILE: src/Spectre.Console.Tests/Unit/AlternateScreenTests.cs
  class AlternateScreenTests (line 3) | [ExpectationPath("AlternateScreen")]
    method Should_Throw_If_Alternative_Buffer_Is_Not_Supported_By_Terminal (line 6) | [Fact]
    method Should_Throw_If_Ansi_Is_Not_Supported_By_Terminal (line 28) | [Fact]
    method Should_Write_To_Alternate_Screen (line 51) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/AnsiConsoleTests.Ansi.cs
  class AnsiConsoleTests (line 3) | public sealed partial class AnsiConsoleTests
    class Ansi (line 5) | public sealed class Ansi
      method Should_Write_Ansi_Codes_To_Console_If_Supported (line 7) | [Fact]
      method Should_Not_Write_Ansi_Codes_To_Console_If_Not_Supported (line 24) | [Fact]
      method Should_Return_Ansi_For_Renderable (line 41) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/AnsiConsoleTests.Colors.cs
  class AnsiConsoleTests (line 3) | public partial class AnsiConsoleTests
    method Should_Create_Console_With_Requested_ColorSystem (line 5) | [Theory]
    class TrueColor (line 24) | public sealed class TrueColor
      method Should_Return_Correct_Code (line 26) | [Theory]
      method Should_Return_Eight_Bit_Ansi_Code_For_Known_Colors (line 43) | [Theory]
    class EightBit (line 61) | public sealed class EightBit
      method Should_Return_Correct_Code_For_Known_Color (line 63) | [Theory]
      method Should_Map_TrueColor_To_Nearest_Eight_Bit_Color_If_Possible (line 80) | [Theory]
      method Should_Estimate_TrueColor_To_Nearest_Eight_Bit_Color (line 97) | [Theory]
    class Standard (line 115) | public sealed class Standard
      method Should_Return_Correct_Code_For_Known_Color (line 117) | [Theory]
      method Should_Map_TrueColor_To_Nearest_Four_Bit_Color_If_Possible (line 134) | [Theory]
      method Should_Estimate_TrueColor_To_Nearest_Four_Bit_Color (line 156) | [Theory]
    class Legacy (line 179) | public sealed class Legacy
      method Should_Return_Correct_Code_For_Known_Color (line 181) | [Theory]
      method Should_Map_TrueColor_To_Nearest_Three_Bit_Color_If_Possible (line 198) | [Theory]
      method Should_Estimate_TrueColor_To_Nearest_Three_Bit_Color (line 220) | [Theory]

FILE: src/Spectre.Console.Tests/Unit/AnsiConsoleTests.Cursor.cs
  class AnsiConsoleTests (line 3) | public partial class AnsiConsoleTests
    class Cursor (line 5) | public sealed class Cursor
      class TheMoveMethod (line 7) | public sealed class TheMoveMethod
        method Should_Return_Correct_Ansi_Code (line 9) | [Theory]
      class TheSetPositionMethod (line 29) | public sealed class TheSetPositionMethod
        method Should_Return_Correct_Ansi_Code (line 31) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/AnsiConsoleTests.Markup.cs
  class AnsiConsoleTests (line 3) | public partial class AnsiConsoleTests
    class Markup (line 5) | public sealed class Markup
      method Should_Output_Expected_Ansi_For_Markup (line 7) | [Theory]
      method Should_Output_Expected_Ansi_For_Link_With_Url_And_Text (line 24) | [Fact]
      method Should_Output_Expected_Ansi_For_Link_With_Only_Url (line 38) | [Fact]
      method Should_Output_Expected_Ansi_For_Link_With_Bracket_In_Url_Only (line 52) | [Fact]
      method Should_Output_Expected_Ansi_For_Link_With_Bracket_In_Url (line 67) | [Fact]
      method Should_Be_Able_To_Escape_Tags (line 82) | [Theory]
      method Should_Throw_If_Encounters_Malformed_Tag (line 98) | [Theory]
      method Should_Throw_If_Tags_Are_Unbalanced (line 117) | [Fact]
      method Should_Throw_If_Encounters_Closing_Tag (line 131) | [Fact]
      method Should_Not_Get_Confused_When_Mixing_Escaped_And_Unescaped (line 145) | [Fact]
      method Should_Not_Fail_As_In_GH1024 (line 158) | [Theory]

FILE: src/Spectre.Console.Tests/Unit/AnsiConsoleTests.MarkupInterpolated.cs
  class AnsiConsoleTests (line 3) | public partial class AnsiConsoleTests
    class MarkupInterpolated (line 5) | public sealed class MarkupInterpolated
      method Should_Print_Simple_Interpolated_Strings (line 7) | [Fact]
      method Should_Not_Throw_Error_On_Links_Brackets (line 23) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/AnsiConsoleTests.Prompt.cs
  class AnsiConsoleTests (line 3) | public partial class AnsiConsoleTests
    class Confirm (line 5) | public sealed class Confirm
      method Should_Return_Default_Value_If_Nothing_Is_Entered (line 7) | [Theory]
    class Ask (line 34) | public sealed class Ask
      method Should_Return_Correct_DateTime_When_Asked_PL_Culture (line 36) | [Theory]

FILE: src/Spectre.Console.Tests/Unit/AnsiConsoleTests.Style.cs
  class AnsiConsoleTests (line 3) | public partial class AnsiConsoleTests
    method Should_Write_Decorated_Text_Correctly (line 5) | [Theory]
    method Should_Write_Text_With_Multiple_Decorations_Correctly (line 28) | [Theory]

FILE: src/Spectre.Console.Tests/Unit/AnsiConsoleTests.cs
  class AnsiConsoleTests (line 3) | public partial class AnsiConsoleTests
    class Clear (line 5) | public sealed class Clear
      method Should_Clear_Screen (line 7) | [Theory]
    class Write (line 27) | public sealed class Write
      method Should_Combine_Decoration_And_Colors (line 29) | [Fact]
      method Should_Not_Include_Foreground_If_Set_To_Default_Color (line 49) | [Fact]
      method Should_Not_Include_Background_If_Set_To_Default_Color (line 69) | [Fact]
      method Should_Not_Include_Decoration_If_Set_To_None (line 89) | [Fact]
    class WriteLine (line 110) | public sealed class WriteLine
      method Should_Reset_Colors_Correctly_After_Line_Break (line 112) | [Fact]
      method Should_Reset_Colors_Correctly_After_Line_Break_In_Text (line 129) | [Fact]
    class WriteException (line 146) | public sealed class WriteException
      method Should_Not_Throw_If_Exception_Has_No_StackTrace (line 148) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/AnsiDetectorTests.cs
  class AnsiDetectorTests (line 3) | public sealed class AnsiDetectorTests
    method Should_Not_Support_Ansi_When_Output_Is_Redirected (line 5) | [Fact]
    method Should_Not_Support_Ansi_When_Error_Is_Redirected (line 18) | [Fact]
    method Should_Support_Ansi_When_Explicitly_Enabled_Even_If_Output_Is_Redirected (line 31) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/BackwardsCompatibilityTests.cs
  class BackwardsCompatibilityTests (line 7) | public class BackwardsCompatibilityTests
    method Color_Should_Have_All_Legacy_Properties_With_Same_Values (line 9) | [Fact]
    method Spinner_Known_Should_Have_All_Legacy_Properties_With_Same_Values (line 51) | [Fact]
    method Emoji_Known_Should_Have_All_Legacy_Fields_With_Same_Values (line 89) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/EmojiTests.cs
  class EmojiTests (line 3) | public sealed class EmojiTests
    method Should_Substitute_Emoji_Shortcodes_In_Markdown (line 5) | [Fact]
    method Should_Contain_Predefined_Emojis (line 18) | [Fact]
    class TheReplaceMethod (line 28) | public sealed class TheReplaceMethod
      method Should_Replace_Emojis_In_Text (line 30) | [Fact]
    class Parsing (line 41) | public sealed class Parsing
      method Can_Handle_Different_Combinations (line 43) | [Theory]
      method Should_Leave_Single_Colons (line 65) | [Fact]
      method Unknown_emojis_should_remain_unchanged (line 78) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/ExceptionTests.cs
  class ExceptionTests (line 3) | [ExpectationPath("Exception")]
    method Should_Write_Exception (line 6) | [Fact]
    method Should_Write_Exception_With_Shortened_Types (line 21) | [Fact]
    method Should_Write_Exception_With_Shortened_Methods (line 36) | [Fact]
    method Should_Write_Exception_With_Inner_Exception (line 51) | [Fact]
    method Should_Write_Exceptions_With_Generic_Type_Parameters_In_Callsite_As_Expected (line 66) | [Fact]
    method Should_Write_Exception_With_Output_Param (line 81) | [Fact]
    method Should_Write_Exception_With_Tuple_Return (line 96) | [Fact]
    method Should_Write_Exception_With_No_StackTrace (line 111) | [Fact]
    method Should_Write_GenericException (line 126) | [Theory]
    method GetException (line 145) | public static Exception GetException(Action action)

FILE: src/Spectre.Console.Tests/Unit/InteractionDetectorTests.cs
  class InteractionDetectorTests (line 3) | public sealed class InteractionDetectorTests
    method Should_Not_Be_Interactive_When_Output_Is_Redirected (line 5) | [Fact]
    method Should_Not_Be_Interactive_When_Error_Is_Redirected (line 17) | [Fact]
    method Should_Be_Interactive_When_Nothing_Is_Redirected (line 29) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Internal/FileSizeTests.cs
  class FileSizeTests (line 3) | public sealed class FileSizeTests
    method Binary_Unit_In_Bytes_Should_Return_Expected (line 5) | [Theory]
    method Binary_Unit_In_Bits_Should_Return_Expected (line 25) | [Theory]
    method Decimal_Unit_In_Bytes_Should_Return_Expected (line 46) | [Theory]
    method Decimal_Unit_In_Bits_Should_Return_Expected (line 66) | [Theory]

FILE: src/Spectre.Console.Tests/Unit/Internal/WhiteSpaceSegmentEnumeratorTests.cs
  class WhiteSpaceSegmentEnumeratorTests (line 3) | public class WhiteSpaceSegmentEnumeratorTests
    class TheoryData (line 5) | public class TheoryData : TheoryData<string, string[]>
      method TheoryData (line 7) | public TheoryData()
    method Should_Produce_Expected_Segments (line 22) | [Theory]

FILE: src/Spectre.Console.Tests/Unit/Live/Progress/DownloadedColumnTests.cs
  class DownloadedColumnTests (line 3) | public sealed class DownloadedColumnTests
    method Binary_Unit_In_Bytes_Should_Return_Expected (line 5) | [Theory]
    method Binary_Unit_In_Bits_Should_Return_Expected (line 28) | [Theory]
    method Decimal_Unit_In_Bytes_Should_Return_Expected (line 46) | [Theory]
    method Decimal_Unit_In_Bits_Should_Return_Expected (line 64) | [Theory]

FILE: src/Spectre.Console.Tests/Unit/Live/Progress/ProgressColumnFixture.cs
  class ProgressColumnFixture (line 3) | public sealed class ProgressColumnFixture<T>
    method ProgressColumnFixture (line 9) | public ProgressColumnFixture(double completed, double total)
    method Render (line 16) | public string Render()

FILE: src/Spectre.Console.Tests/Unit/Live/Progress/ProgressTaskTests.cs
  class ProgressTaskTests (line 3) | public sealed class ProgressTaskTests
    method StartTime_Is_Set_From_TimeProvider_When_AutoStart_Is_True (line 5) | [Fact]
    method StartTime_Is_Null_When_AutoStart_Is_False (line 19) | [Fact]
    method StartTask_Uses_TimeProvider (line 32) | [Fact]
    method StopTask_Uses_TimeProvider (line 47) | [Fact]
    method ElapsedTime_Uses_TimeProvider (line 63) | [Fact]
    method ElapsedTime_Is_Fixed_After_StopTask (line 77) | [Fact]
    method Speed_Uses_TimeProvider (line 93) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Live/Progress/ProgressTests.cs
  class ProgressTests (line 3) | [ExpectationPath("Live/Progress")]
    method Should_Render_Task_Correctly (line 6) | [Fact]
    method Should_Not_Auto_Clear_If_Specified (line 34) | [Fact]
    method Should_Reduce_Width_If_Needed (line 62) | [Fact]
    method Setting_Max_Value_Should_Set_The_MaxValue_And_Cap_Value (line 88) | [Fact]
    method Setting_Max_Value_To_Zero_Should_Make_Percentage_OneHundred (line 115) | [Fact]
    method Setting_Value_Should_Override_Incremented_Value (line 141) | [Fact]
    method Setting_Value_To_MaxValue_Should_Finish_Task (line 168) | [Fact]
    method Should_Increment_Manually_Set_Value (line 193) | [Fact]
    method Should_Hide_Completed_Tasks (line 219) | [Fact]
    method Should_Report_Max_Remaining_Time_For_Extremely_Small_Progress (line 260) | [Fact]
    method Should_Render_Tasks_Added_Before_And_After_Correctly (line 290) | [Fact]
    method Should_Render_Tasks_At_Specified_Indexes_Correctly (line 324) | [Fact]
    method Should_Store_And_Retrieve_Task_Tag (line 358) | [Fact]
    method Should_Expose_Task_Tag_In_RenderHook (line 382) | [Fact]
    method Should_Remove_Task_From_Context (line 411) | [Fact]
    method Should_Not_Render_Removed_Task_From_Context (line 433) | [Fact]
    method Should_Override_HideCompleted_On_Per_Task_Basis (line 460) | [Fact]
    method Should_Override_HideCompleted_False_On_Per_Task_Basis (line 491) | [Fact]
    method Should_Respect_MaxSamplesKept (line 522) | [Fact]
    method RemainingTimeColumn_Should_Return_Blank_For_Indeterminate_Task (line 557) | [Fact]
    method Should_Drop_Samples_Older_Than_MaxSamplingAge (line 584) | [Fact]
    method Should_Calculate_Speed_When_Task_Stopped (line 612) | [Fact]
    method Should_Include_StartTime_In_Speed_Calculation (line 647) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Live/StatusTests.cs
  class StatusTests (line 3) | [ExpectationPath("Live/Status")]
    class DummySpinner1 (line 6) | public sealed class DummySpinner1 : Spinner
    class DummySpinner2 (line 13) | public sealed class DummySpinner2 : Spinner
    method Should_Render_Status_Correctly (line 20) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Prompts/ListPromptStateTests.cs
  class ListPromptStateTests (line 3) | public sealed class ListPromptStateTests
    method CreateListPromptState (line 5) | private ListPromptState<string> CreateListPromptState(int count, int p...
    method Should_Have_Start_Index_Zero (line 11) | [Fact]
    method Should_Decrease_Index (line 24) | [Theory]
    method Should_Increase_Index (line 41) | [Theory]
    method Should_Go_To_End (line 59) | [Theory]
    method Should_Clamp_Index_If_No_Wrap (line 74) | [Theory]
    method Should_Wrap_Index_If_Wrap (line 90) | [Theory]
    method Should_Wrap_Index_If_Wrap_And_Down (line 106) | [Theory]
    method Should_Wrap_Index_If_Wrap_And_Page_Up (line 121) | [Fact]
    method Should_Wrap_Index_If_Wrap_And_Offset_And_Page_Down (line 134) | [Theory]
    method Should_Jump_To_First_Matching_Item_When_Searching (line 151) | [Fact]
    method Should_Jump_Back_To_First_Item_When_Clearing_Search_Term (line 164) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Prompts/MultiSelectionPromptTests.cs
  class MultiSelectionPromptTests (line 3) | public sealed class MultiSelectionPromptTests
    method Should_Not_Mark_Item_As_Selected_By_Default (line 5) | [Fact]
    method Should_Mark_Item_As_Selected (line 18) | [Fact]
    method Should_Mark_Custom_Item_As_Selected_If_The_Same_Reference_Is_Used (line 32) | [Fact]
    method Should_Mark_Custom_Item_As_Selected_If_A_Comparer_Is_Provided (line 47) | [Fact]
    method Should_Get_The_Direct_Parent (line 61) | [Fact]
    method Should_Get_The_List_Of_All_Parents (line 75) | [Fact]
    method Should_Get_An_Empty_List_Of_Parents_For_Root_Node (line 89) | [Fact]
    method Should_Get_Null_As_Direct_Parent_Of_Root_Node (line 103) | [Fact]
    method Should_Throw_When_Getting_Parents_Of_Non_Existing_Node (line 117) | [Fact]
    method Should_Throw_Meaningful_Exception_For_Empty_Prompt (line 131) | [Fact]
    method Should_Return_All_Selected_Items (line 150) | [Fact]
    method Should_Return_CancelResult_On_Cancel_FuncVersion (line 170) | [Fact]
    method Should_Return_CancelResult_On_Cancel_ListVersion (line 191) | [Fact]
    method Should_Return_CancelResult_On_Cancel_ItemVersion (line 212) | [Fact]
    method Should_Return_CancelResult_On_Cancel_EmptyVersion (line 233) | [Fact]
  class CustomItem (line 255) | file sealed class CustomItem
    class Comparer (line 260) | public class Comparer : IEqualityComparer<CustomItem>
      method Equals (line 262) | public bool Equals(CustomItem? x, CustomItem? y)
      method GetHashCode (line 277) | public int GetHashCode(CustomItem obj)

FILE: src/Spectre.Console.Tests/Unit/Prompts/SelectionPromptTests.cs
  class SelectionPromptTests (line 3) | public sealed class SelectionPromptTests
    method Should_Not_Throw_When_Selecting_An_Item_With_Escaped_Markup (line 7) | [Fact]
    method Should_Select_The_First_Leaf_Item (line 26) | [Fact]
    method Should_Select_The_Last_Leaf_Item_When_Wrapping_Around (line 46) | [Fact]
    method Should_Highlight_Search_Term (line 68) | [Fact]
    method Should_Search_In_Remapped_Result (line 89) | [Fact]
    method Should_Throw_Meaningful_Exception_For_Empty_Prompt (line 118) | [Fact]
    method Should_Append_Space_To_Search_If_Search_Is_Enabled (line 135) | [Fact]
    method Should_Return_CancelResult_On_Cancel_FuncVersion (line 159) | [Fact]
    method Should_Return_CancelResult_On_Cancel_ValueVersion (line 180) | [Fact]
    method Should_Ignore_Escape_If_CancelResult_Not_Set (line 201) | [Fact]
    method Should_Not_Throw_When_Searching_With_Escaped_Brackets_In_Choices (line 222) | [Fact]
    method Should_Search_And_Select_Item_With_Brackets (line 245) | [Fact]
  class CustomSelectionItem (line 270) | file sealed class CustomSelectionItem
    method CustomSelectionItem (line 275) | public CustomSelectionItem(int value, string name)

FILE: src/Spectre.Console.Tests/Unit/Prompts/TextPromptTests.cs
  class TextPromptTests (line 3) | [ExpectationPath("Prompts/Text")]
    method Should_Return_Entered_Text (line 6) | [Fact]
    method Should_Return_Validation_Error_If_Value_Cannot_Be_Converted (line 20) | [Fact]
    method Should_Chose_Default_Value_If_Nothing_Is_Entered (line 36) | [Fact]
    method Should_Return_Error_If_An_Invalid_Choice_Is_Made (line 55) | [Fact]
    method Should_Accept_Choice_In_List (line 75) | [Fact]
    method Should_Auto_Complete_To_First_Choice_If_Pressing_Tab_On_Empty_String (line 94) | [Fact]
    method Should_Auto_Complete_To_Best_Match (line 114) | [Fact]
    method Should_Auto_Complete_To_Next_Choice_When_Pressing_Tab_On_A_Match (line 135) | [Fact]
    method Should_Auto_Complete_To_Previous_Choice_When_Pressing_ShiftTab_On_A_Match (line 156) | [Fact]
    method Should_Return_Error_If_Custom_Validation_Fails (line 180) | [Fact]
    method Should_Use_Custom_Converter (line 213) | [Fact]
    method Should_Choose_Masked_Default_Value_If_Nothing_Is_Entered_And_Prompt_Is_Secret (line 233) | [Fact]
    method Should_Not_Erase_Prompt_Text_On_Backspace_If_Prompt_Is_Secret_And_Mask_Is_Null (line 251) | [Fact]
    method Should_Choose_Custom_Masked_Default_Value_If_Nothing_Is_Entered_And_Prompt_Is_Secret_And_Mask_Is_Custom (line 270) | [Fact]
    method Should_Choose_Empty_Masked_Default_Value_If_Nothing_Is_Entered_And_Prompt_Is_Secret_And_Mask_Is_Null (line 288) | [Fact]
    method Should_Not_Append_Questionmark_Or_Colon_If_No_Choices_Are_Set (line 306) | [Fact]
    method Uses_default_style_for_default_value_if_no_style_is_set (line 322) | [Fact]
    method Uses_specified_default_value_style (line 344) | [Fact]
    method Uses_default_style_for_choices_if_no_style_is_set (line 367) | [Fact]
    method Uses_the_specified_choices_style (line 390) | [Fact]
    method Should_Return_Error_If_Default_Choice_Invalid (line 414) | [Fact]
    method Should_Clear_Prompt_Line_When_ClearOnFinish_Is_Enabled (line 436) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/RecorderTests.cs
  class RecorderTests (line 3) | [ExpectationPath("Widgets/Recorder")]
    method Should_Export_Text_As_Expected (line 6) | [Fact]
    method Should_Export_Html_Text_As_Expected (line 26) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Rendering/Borders/BoxBorderTests.cs
  class BoxBorderTests (line 3) | [ExpectationPath("Rendering/Borders/Box")]
    class NoBorder (line 6) | public sealed class NoBorder
      class TheSafeGetBorderMethod (line 8) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 10) | [Fact]
      method Should_Render_As_Expected (line 21) | [Fact]
      method Should_Render_NoBorder_With_Header_As_Expected (line 37) | [Fact]
    class AsciiBorder (line 53) | public sealed class AsciiBorder
      class TheSafeGetBorderMethod (line 55) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 57) | [Fact]
      method Should_Render_As_Expected (line 68) | [Fact]
    class DoubleBorder (line 84) | public sealed class DoubleBorder
      class TheSafeGetBorderMethod (line 86) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 88) | [Fact]
      method Should_Render_As_Expected (line 99) | [Fact]
    class HeavyBorder (line 115) | public sealed class HeavyBorder
      class TheSafeGetBorderMethod (line 117) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 119) | [Fact]
      method Should_Render_As_Expected (line 130) | [Fact]
    class RoundedBorder (line 146) | public sealed class RoundedBorder
      method Should_Return_Safe_Border (line 148) | [Fact]
      method Should_Render_As_Expected (line 158) | [Fact]
    class SquareBorder (line 174) | public sealed class SquareBorder
      method Should_Return_Safe_Border (line 176) | [Fact]
      method Should_Render_As_Expected (line 186) | [Fact]
    class Fixture (line 202) | private static class Fixture
      method GetPanel (line 204) | public static Panel GetPanel()

FILE: src/Spectre.Console.Tests/Unit/Rendering/Borders/TableBorderTests.cs
  class TableBorderTests (line 3) | [ExpectationPath("Rendering/Borders/Table")]
    class NoBorder (line 6) | public sealed class NoBorder
      method Should_Return_Correct_Visibility (line 8) | [Fact]
      class TheSafeGetBorderMethod (line 18) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 20) | [Fact]
      method Should_Render_As_Expected (line 31) | [Fact]
    class AsciiBorder (line 47) | public sealed class AsciiBorder
      method Should_Return_Correct_Visibility (line 49) | [Fact]
      class TheSafeGetBorderMethod (line 59) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 61) | [Fact]
      method Should_Render_As_Expected (line 72) | [Fact]
    class Ascii2Border (line 88) | public sealed class Ascii2Border
      method Should_Return_Correct_Visibility (line 90) | [Fact]
      class TheSafeGetBorderMethod (line 100) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 102) | [Fact]
      method Should_Render_As_Expected (line 113) | [Fact]
    class AsciiDoubleHeadBorder (line 129) | public sealed class AsciiDoubleHeadBorder
      method Should_Return_Correct_Visibility (line 131) | [Fact]
      class TheSafeGetBorderMethod (line 141) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 143) | [Fact]
      method Should_Render_As_Expected (line 154) | [Fact]
    class SquareBorder (line 170) | public sealed class SquareBorder
      method Should_Return_Correct_Visibility (line 172) | [Fact]
      class TheSafeGetBorderMethod (line 182) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 184) | [Fact]
      method Should_Render_As_Expected (line 195) | [Fact]
    class RoundedBorder (line 211) | public sealed class RoundedBorder
      method Should_Return_Correct_Visibility (line 213) | [Fact]
      class TheSafeGetBorderMethod (line 223) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 225) | [Fact]
      method Should_Render_As_Expected (line 236) | [Fact]
    class MinimalBorder (line 252) | public sealed class MinimalBorder
      method Should_Return_Correct_Visibility (line 254) | [Fact]
      class TheSafeGetBorderMethod (line 264) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 266) | [Fact]
      method Should_Render_As_Expected (line 277) | [Fact]
    class MinimalHeavyHeadBorder (line 293) | public sealed class MinimalHeavyHeadBorder
      method Should_Return_Correct_Visibility (line 295) | [Fact]
      class TheSafeGetBorderMethod (line 305) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 307) | [Fact]
      method Should_Render_As_Expected (line 318) | [Fact]
    class MinimalDoubleHeadBorder (line 334) | public sealed class MinimalDoubleHeadBorder
      method Should_Return_Correct_Visibility (line 336) | [Fact]
      class TheSafeGetBorderMethod (line 346) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 348) | [Fact]
      method Should_Render_As_Expected (line 359) | [Fact]
    class SimpleBorder (line 375) | public sealed class SimpleBorder
      method Should_Return_Correct_Visibility (line 377) | [Fact]
      class TheSafeGetBorderMethod (line 387) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 389) | [Fact]
      method Should_Render_As_Expected (line 400) | [Fact]
    class HorizontalBorder (line 416) | public sealed class HorizontalBorder
      method Should_Return_Correct_Visibility (line 418) | [Fact]
      class TheSafeGetBorderMethod (line 428) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 430) | [Fact]
      method Should_Render_As_Expected (line 441) | [Fact]
    class SimpleHeavyBorder (line 457) | public sealed class SimpleHeavyBorder
      method Should_Return_Correct_Visibility (line 459) | [Fact]
      class TheSafeGetBorderMethod (line 469) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 471) | [Fact]
      method Should_Render_As_Expected (line 482) | [Fact]
    class HeavyBorder (line 498) | public sealed class HeavyBorder
      method Should_Return_Correct_Visibility (line 500) | [Fact]
      class TheSafeGetBorderMethod (line 510) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 512) | [Fact]
      method Should_Render_As_Expected (line 523) | [Fact]
    class HeavyEdgeBorder (line 539) | public sealed class HeavyEdgeBorder
      method Should_Return_Correct_Visibility (line 541) | [Fact]
      class TheSafeGetBorderMethod (line 551) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 553) | [Fact]
      method Should_Render_As_Expected (line 564) | [Fact]
    class HeavyHeadBorder (line 580) | public sealed class HeavyHeadBorder
      method Should_Return_Correct_Visibility (line 582) | [Fact]
      class TheSafeGetBorderMethod (line 592) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 594) | [Fact]
      method Should_Render_As_Expected (line 605) | [Fact]
    class DoubleBorder (line 621) | public sealed class DoubleBorder
      method Should_Return_Correct_Visibility (line 623) | [Fact]
      class TheSafeGetBorderMethod (line 633) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 635) | [Fact]
      method Should_Render_As_Expected (line 646) | [Fact]
    class DoubleEdgeBorder (line 662) | public sealed class DoubleEdgeBorder
      method Should_Return_Correct_Visibility (line 664) | [Fact]
      class TheSafeGetBorderMethod (line 674) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 676) | [Fact]
      method Should_Render_As_Expected (line 687) | [Fact]
    class MarkdownBorder (line 703) | public sealed class MarkdownBorder
      method Should_Return_Correct_Visibility (line 705) | [Fact]
      class TheSafeGetBorderMethod (line 715) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 717) | [Fact]
      method Should_Render_As_Expected (line 728) | [Fact]
      method Should_Render_Left_Aligned_Table_Columns_As_Expected (line 743) | [Fact]
      method Should_Render_Center_Aligned_Table_Columns_As_Expected (line 758) | [Fact]
      method Should_Render_Right_Aligned_Table_Columns_As_Expected (line 773) | [Fact]
    class MinimalistBorder (line 789) | public sealed class MinimalistBorder
      method Should_Return_Correct_Visibility (line 791) | [Fact]
      class TheSafeGetBorderMethod (line 801) | public sealed class TheSafeGetBorderMethod
        method Should_Return_Safe_Border (line 803) | [Fact]
      method Should_Render_As_Expected (line 814) | [Fact]
    class Fixture (line 830) | private static class Fixture
      method GetTable (line 832) | public static Table GetTable(Justify? header1 = null, Justify? heade...

FILE: src/Spectre.Console.Tests/Unit/Rendering/RenderHookTests.cs
  class RenderHookTests (line 3) | public sealed class RenderHookTests
    class HelloRenderHook (line 5) | private sealed class HelloRenderHook : IRenderHook
      method Process (line 7) | public IEnumerable<IRenderable> Process(RenderOptions options, IEnum...
    method Should_Inject_Renderable_Before_Writing_To_Console (line 13) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Rendering/SegmentShapeTests.cs
  class SegmentShapeTests (line 3) | public sealed class SegmentShapeTests
    method Calculate_Should_Return_Zero_Size_When_No_Lines (line 5) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Rendering/SegmentTests.cs
  class SegmentTests (line 3) | public sealed class SegmentTests
    class TheSplitMethod (line 5) | public sealed class TheSplitMethod
      method Should_Split_Segment_Correctly (line 7) | [Theory]
    class TheSplitLinesMethod (line 46) | public sealed class TheSplitLinesMethod
      method Should_Split_Segment (line 48) | [Fact]
      method Should_Split_Segment_With_Windows_LineBreak (line 78) | [Fact]
      method Should_Split_Segments_With_Linebreak_In_Text (line 108) | [Fact]
    class TheSplitLinesWithMaxWidthMethod (line 139) | public sealed class TheSplitLinesWithMaxWidthMethod
      method Should_Split_Fullwidth_Segment_Without_Exception (line 141) | [Fact]
      method Should_Split_Fullwidth_Segment_At_Correct_Boundary (line 165) | [Fact]
      method Should_Split_Fullwidth_Segment_With_Odd_MaxWidth (line 183) | [Fact]
    class TheSplitOverflowMethod (line 202) | public sealed class TheSplitOverflowMethod
      method Should_Handle_Fullwidth_Text_When_Using_Ellipsis (line 204) | [Fact]
      method Should_Handle_Fullwidth_Text_When_Using_Crop (line 220) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/AlignTests.cs
  class AlignTests (line 3) | [ExpectationPath("Widgets/Align")]
    class Left (line 6) | public sealed class Left
      method Should_Render_Panel_Left_Aligned_At_Top (line 8) | [Fact]
      method Should_Render_Panel_Left_Aligned_At_Middle (line 23) | [Fact]
      method Should_Render_Panel_Left_Aligned_At_Bottom (line 38) | [Fact]
    class Center (line 54) | public sealed class Center
      method Should_Render_Panel_Center_Aligned_At_Top (line 56) | [Fact]
      method Should_Render_Panel_Center_Aligned_At_Middle (line 71) | [Fact]
      method Should_Render_Panel_Center_Aligned_At_Bottom (line 86) | [Fact]
    class Right (line 102) | public sealed class Right
      method Should_Render_Panel_Right_Aligned_At_Top (line 104) | [Fact]
      method Should_Render_Panel_Right_Aligned_At_Middle (line 119) | [Fact]
      method Should_Render_Panel_Right_Aligned_At_Bottom (line 134) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/BarChartTests.cs
  class BarChartTests (line 3) | [ExpectationPath("Widgets/BarChart")]
    method Should_Render_Correctly (line 6) | [Fact]
    method Should_Render_Correctly_2 (line 25) | [Fact]
    method Should_Render_Correctly_3 (line 44) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/BreakdownChartTests.cs
  class BreakdownChartTests (line 3) | [ExpectationPath("Widgets/BreakdownChart")]
    method Should_Render_Correctly (line 6) | [Fact]
    method Should_Render_With_Specific_Width (line 21) | [Fact]
    method Should_Render_Correctly_With_Specific_Value_Formatter (line 36) | [Fact]
    method Should_Render_Correctly_Without_Tags (line 54) | [Fact]
    method Should_Render_Correctly_Without_Tag_Values (line 69) | [Fact]
    method Should_Render_Correctly_With_Specific_Culture (line 84) | [Fact]
    method Should_Render_FullSize_Mode_Correctly (line 99) | [Fact]
    method Should_Render_Correct_Ansi (line 114) | [Fact]
    method Should_Render_Correct_ValueColor (line 129) | [Fact]
    class Fixture (line 144) | public static class Fixture
      method GetChart (line 146) | public static BreakdownChart GetChart()

FILE: src/Spectre.Console.Tests/Unit/Widgets/CalendarTests.cs
  class CalendarTests (line 3) | [ExpectationPath("Widgets/Calendar")]
    method Should_Render_Calendar_Correctly (line 6) | [Fact]
    method Should_Center_Calendar_Correctly_Using_Aligner (line 24) | [Fact]
    method Should_Left_Align_Calendar_By_Default (line 44) | [Fact]
    method Should_Right_Align_Calendar_Correctly_Using_Aligner (line 62) | [Fact]
    method Should_Render_Calendar_Correctly_For_Specific_Culture (line 82) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/CanvasTests.cs
  class CanvasTests (line 3) | [ExpectationPath("Widgets/Canvas")]
    class TheConstructor (line 6) | public sealed class TheConstructor
      method Should_Throw_If_Width_Is_Less_Than_Zero (line 8) | [Fact]
      method Should_Throw_If_Height_Is_Less_Than_Zero (line 19) | [Fact]
    method Should_Render_Canvas_Correctly (line 31) | [Theory]
    method Simple_Measure (line 58) | [Theory]
    method Should_Scale_Down_Canvas_Is_Bigger_Than_Terminal (line 83) | [Theory]
    method Should_Scale_Down_Canvas_If_MaxWidth_Is_Set (line 109) | [Theory]
    method Should_Not_Render_Canvas_If_Canvas_Cannot_Be_Scaled_Down (line 137) | [Theory]

FILE: src/Spectre.Console.Tests/Unit/Widgets/ColumnsTests.cs
  class ColumnsTests (line 3) | [ExpectationPath("Widgets/Columns")]
    class User (line 6) | private sealed class User
    method Should_Render_Columns_Correctly (line 12) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/FigletTests.cs
  class FigletTests (line 3) | [ExpectationPath("Widgets/Figlet")]
    method Should_Load_Font_From_Stream (line 6) | [Theory]
    method Should_Render_Text_Correctly (line 25) | [Fact]
    method Should_Render_Wrapped_Text_Correctly (line 40) | [Fact]
    method Should_Render_Left_Aligned_Text_Correctly (line 55) | [Fact]
    method Should_Render_Centered_Text_Correctly (line 71) | [Fact]
    method Should_Render_Right_Aligned_Text_Correctly (line 87) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/GridTests.cs
  class GridTests (line 3) | [ExpectationPath("Widgets/Grid")]
    class TheAddColumnMethod (line 6) | public sealed class TheAddColumnMethod
      method Should_Throw_If_Rows_Are_Not_Empty (line 8) | [Fact]
    class TheAddRowMethod (line 25) | public sealed class TheAddRowMethod
      method Should_Throw_If_Rows_Are_Null (line 27) | [Fact]
      method Should_Add_Empty_Items_If_User_Provides_Less_Row_Items_Than_Columns (line 41) | [Fact]
      method Should_Throw_If_Row_Columns_Are_Greater_Than_Number_Of_Columns (line 56) | [Fact]
    class TheAddEmptyRowMethod (line 72) | [ExpectationPath("AddEmptyRow")]
      method Should_Add_Empty_Row (line 75) | [Fact]
    method Should_Render_Grid_Correctly (line 96) | [Fact]
    method Should_Render_Grid_Correctly_2 (line 116) | [Fact]
    method Should_Render_Grid_Column_Alignment_Correctly (line 135) | [Fact]
    method Should_Use_Default_Padding (line 156) | [Fact]
    method Should_Render_Explicit_Grid_Column_Padding_Correctly (line 175) | [Fact]
    method Should_Respect_Cell_Content_Overflow_Crop (line 196) | [Fact]
    method Should_Respect_Cell_Content_Overflow_Ellipsis (line 216) | [Fact]
    method Should_Respect_Cell_Content_Overflow_Fold (line 236) | [Fact]
    method Should_Respect_Markup_Content_Overflow_In_Cell (line 256) | [Fact]
    method Should_Respect_Cell_Content_Overflow_With_NoWrap_Column (line 276) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/JsonTextTests.cs
  class JsonTextTests (line 3) | [ExpectationPath("Widgets/Json")]
    method Should_Render_Json (line 6) | [Fact]
    method Should_Render_Compact_Json (line 23) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/LayoutTests.cs
  class LayoutTests (line 3) | [ExpectationPath("Widgets/Layout")]
    method Should_Render_Empty_Layout (line 6) | [Fact]
    method Should_Render_Empty_Layout_With_Renderable (line 21) | [Fact]
    method Should_Render_Layout_With_Columns (line 36) | [Fact]
    method Should_Render_Layout_With_Rows (line 54) | [Fact]
    method Should_Render_Layout_With_Nested_Columns (line 72) | [Fact]
    method Should_Render_Layout_With_Nested_Rows (line 96) | [Fact]
    method Should_Render_Layout_With_Nested_Rows_And_Columns (line 120) | [Fact]
    method Should_Render_Layout_With_Three_And_One_Columns (line 156) | [Theory]
    method Should_Render_Layout_Without_Invisible_Children (line 185) | [Fact]
    method Should_Render_Layout_With_Respect_To_Ratio (line 221) | [Fact]
    method Should_Render_Layout_With_Respect_To_Size (line 239) | [Fact]
    method Should_Render_Layout_With_Respect_To_Minimum_Size (line 257) | [Fact]
    method Should_Fall_Back_To_Parent_Layout_If_All_Children_Are_Invisible (line 275) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/MarkupTests.cs
  class MarkupTests (line 3) | public sealed class MarkupTests
    class TheLengthProperty (line 5) | public sealed class TheLengthProperty
      method Should_Return_The_Number_Of_Characters (line 7) | [Theory]
    class TheLinesProperty (line 24) | public sealed class TheLinesProperty
      method Should_Return_The_Number_Of_Lines (line 26) | [Theory]
    class TheEscapeMethod (line 43) | public sealed class TheEscapeMethod
      method Should_Escape_Markup_As_Expected (line 45) | [Theory]
    class TheRemoveMethod (line 61) | public sealed class TheRemoveMethod
      method Should_Remove_Markup_From_Text (line 63) | [Theory]
      method Should_Escape_Markup_When_Using_MarkupInterpolated (line 76) | [Theory]
    method Should_Throw_If_Closing_Tag_Is_Not_Properly_Escaped (line 96) | [Theory]
    method Should_Escape_Markup_Blocks_As_Expected (line 113) | [Fact]
    method Should_Render_Links_As_Expected (line 127) | [Theory]
    method Should_Not_Fail_With_Brackets_On_Calls_Without_Args (line 143) | [Fact]
    method Can_Use_Interpolated_Markup_As_IRenderable (line 157) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/PadderTests.cs
  class PadderTests (line 3) | [ExpectationPath("Widgets/Padder")]
    method Should_Render_Padded_Object_Correctly (line 6) | [Fact]
    method Should_Render_Expanded_Padded_Object_Correctly (line 25) | [Fact]
    method Should_Render_Padded_Object_Correctly_When_Nested_Within_Other_Object (line 46) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/PanelTests.cs
  class PanelTests (line 3) | [ExpectationPath("Widgets/Panel")]
    method Should_Render_Panel (line 6) | [Fact]
    method Should_Render_Panel_With_Padding_Set_To_Zero (line 20) | [Fact]
    method Should_Render_Panel_With_Padding (line 37) | [Fact]
    method Should_Render_Panel_With_Header (line 54) | [Fact]
    method Should_Render_Panel_With_Left_Aligned_Header (line 73) | [Fact]
    method Should_Render_Panel_With_Centered_Header (line 91) | [Fact]
    method Should_Render_Panel_With_Right_Aligned_Header (line 109) | [Fact]
    method Should_Collapse_Header_If_It_Will_Not_Fit (line 127) | [Fact]
    method Should_Render_Panel_With_Unicode_Correctly (line 145) | [Fact]
    method Should_Render_Panel_With_Multiple_Lines (line 159) | [Fact]
    method Should_Preserve_Explicit_Line_Ending (line 173) | [Fact]
    method Should_Expand_Panel_If_Enabled (line 189) | [Fact]
    method Should_Render_To_Specified_Width (line 206) | [Fact]
    method Should_Use_Max_Width_If_Specified_Width_Is_Too_Large (line 223) | [Fact]
    method Should_Render_To_Specified_Height (line 241) | [Fact]
    method Should_Render_To_Specified_Width_And_Height (line 258) | [Fact]
    method Should_Justify_Child_To_Right_Correctly (line 276) | [Fact]
    method Should_Center_Child_Correctly (line 294) | [Fact]
    method Should_Render_Panel_Inside_Panel_Correctly (line 312) | [Fact]
    method Should_Wrap_Content_Correctly (line 326) | [Fact]
    method Should_Wrap_Table_With_CJK_Tables_In_Panel_Correctly (line 351) | [Fact]
    method Should_Respect_Text_Overflow_Crop_In_Panel (line 370) | [Fact]
    method Should_Respect_Text_Overflow_Ellipsis_In_Panel (line 390) | [Fact]
    method Should_Respect_Text_Overflow_Fold_In_Panel (line 410) | [Fact]
    method Should_Respect_Markup_Overflow_Ellipsis_In_Panel (line 430) | [Fact]
    method Should_Respect_Text_Overflow_In_Panel_With_Padding (line 450) | [Fact]
    method Should_Respect_Text_Overflow_In_Nested_Panel (line 471) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/ProgressBarTests.cs
  class ProgressBarTests (line 3) | [ExpectationPath("Widgets/ProgressBar")]
    method Should_Render_Correctly (line 6) | [Fact]
    method Should_Render_ValueFormatted (line 28) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/RowsTests.cs
  class RowsTests (line 3) | [ExpectationPath("Widgets/Rows")]
    method Should_Render_Rows_In_Panel_Without_Breaking_Lines (line 6) | [Fact]
    method Should_Render_Rows (line 29) | [Fact]
    method Should_Render_Rows_Correctly_Inside_Other_Widget (line 52) | [Fact]
    method Should_Not_Throw_Exception_On_Empty_Rows (line 75) | [Fact]
    method Should_Render_Rows_Correctly_Inside_Other_Widget_When_Expanded (line 94) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/RuleTests.cs
  class RuleTests (line 3) | [ExpectationPath("Widgets/Rule")]
    method Should_Render_Default_Rule_Without_Title (line 6) | [Fact]
    method Should_Render_Default_Rule_With_Specified_Border (line 20) | [Fact]
    method Should_Render_With_Specified_Box (line 34) | [Fact]
    method Should_Render_Default_Rule_With_Title_Centered_By_Default (line 48) | [Fact]
    method Should_Render_Default_Rule_With_Title_Left_Aligned (line 62) | [Fact]
    method Should_Render_Default_Rule_With_Title_Right_Aligned (line 79) | [Fact]
    method Should_Convert_Line_Breaks_In_Title_To_Spaces (line 96) | [Fact]
    method Should_Truncate_Title (line 110) | [Fact]
    method Should_Truncate_Too_Long_Title (line 124) | [Theory]

FILE: src/Spectre.Console.Tests/Unit/Widgets/Table/TableRowCollectionExtensionsTests.cs
  class TableRowCollectionExtensionsTests (line 3) | [ExpectationPath("Widgets/Table/Rows/Extensions")]
    class TheAddRowMethod (line 6) | public sealed class TheAddRowMethod
      method Should_Add_Renderables (line 8) | [Fact]
      method Should_Add_Strings (line 28) | [Fact]
    class TheInsertRowMethod (line 49) | public sealed class TheInsertRowMethod
      method Should_Insert_Renderables (line 51) | [Fact]
      method Should_Insert_Strings (line 71) | [Fact]
    class TheRemoveRowMethod (line 92) | public sealed class TheRemoveRowMethod
      method Should_Remove_Row (line 94) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/Table/TableRowCollectionTests.cs
  class TableRowCollectionTests (line 3) | [ExpectationPath("Widgets/Table/Rows")]
    class TheAddMethod (line 6) | public sealed class TheAddMethod
      method Should_Throw_If_Columns_Are_Null (line 8) | [Fact]
      method Should_Add_Row_To_Collection (line 22) | [Fact]
      method Should_Return_Index_Of_Added_Row (line 36) | [Fact]
      method Should_Add_Item_At_Correct_Place (line 51) | [Fact]
    class TheInsertMethod (line 71) | public sealed class TheInsertMethod
      method Should_Throw_If_Columns_Are_Null (line 73) | [Fact]
      method Should_Insert_Row (line 87) | [Fact]
      method Should_Return_Index_Of_Inserted_Row (line 102) | [Fact]
      method Should_Insert_Item_At_Correct_Place (line 118) | [Fact]
    class TheRemoveMethod (line 138) | public sealed class TheRemoveMethod
      method Should_Throw_If_Index_Is_Negative (line 140) | [Fact]
      method Should_Throw_If_Index_Is_Larger_Than_Number_Of_Rows (line 155) | [Fact]
      method Should_Remove_Row (line 173) | [Fact]
    class TheClearMethod (line 194) | public sealed class TheClearMethod
      method Should_Remove_All_Rows (line 196) | [Fact]
    class TheUpdateMethod (line 215) | public sealed class TheUpdateMethod
      method Should_Update_Row_With_String (line 217) | [Fact]
      method Should_Update_Row_With_Renderable (line 239) | [Fact]
      method Should_Throw_If_Index_Is_Larger_Than_Number_Of_Rows (line 261) | [Fact]
      method Should_Throw_If_Index_Is_Larger_Than_Number_Of_Columns (line 283) | [Fact]
      method Should_Throw_If_Index_Row_Is_Negative (line 305) | [Fact]
      method Should_Throw_If_Index_Column_Is_Negative (line 327) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/Table/TableTests.cs
  class TableTests (line 3) | [ExpectationPath("Widgets/Table")]
    class TheAddColumnMethod (line 6) | public sealed class TheAddColumnMethod
      method Should_Throw_If_Column_Is_Null (line 8) | [Fact]
      method Should_Throw_If_Rows_Are_Not_Empty (line 22) | [Fact]
    class TheAddColumnsMethod (line 39) | public sealed class TheAddColumnsMethod
      method Should_Throw_If_Columns_Are_Null (line 41) | [Fact]
    class TheAddRowMethod (line 56) | public sealed class TheAddRowMethod
      method Should_Throw_If_String_Rows_Are_Null (line 58) | [Fact]
      method Should_Add_Empty_Items_If_User_Provides_Less_Row_Items_Than_Columns (line 72) | [Fact]
      method Should_Throw_If_Row_Columns_Are_Greater_Than_Number_Of_Columns (line 87) | [Fact]
    class TheAddEmptyRowMethod (line 103) | public sealed class TheAddEmptyRowMethod
      method Should_Render_Table_Correctly (line 105) | [Fact]
    method Should_Render_Table_Correctly (line 125) | [Fact]
    class ColumnSpanning (line 143) | public sealed class ColumnSpanning
      method Should_Render_Table_With_2_Column_Span (line 145) | [Fact]
      method Should_Render_Table_With_3_Column_Span (line 163) | [Fact]
      method Should_Render_Table_With_Full_Row_Span (line 182) | [Fact]
      method Should_Render_Spanned_Cell_LeftAligned (line 201) | [Fact]
      method Should_Render_Table_With_Multiple_Spans_In_Row (line 221) | [Fact]
      method Should_Throw_When_Span_Exceeds_Column_Count (line 239) | [Fact]
      method Should_Throw_When_Span_Is_Less_Than_1 (line 254) | [Fact]
      method Should_Throw_When_Spanning_In_Header (line 265) | [Fact]
      method Should_Throw_When_Spanning_In_Footer (line 276) | [Fact]
      method Should_Render_Spanned_Cells_Without_Border (line 292) | [Fact]
      method Should_Render_Multiline_Spanned_Cell (line 311) | [Fact]
    method Should_Render_Table_With_Row_Separators_Correctly (line 330) | [Fact]
    method Should_Render_Table_With_Row_Separators_No_Header_Correctly (line 349) | [Fact]
    method Should_Render_Table_With_EA_Character_Correctly (line 372) | [Fact]
    method Should_Render_Table_With_Footers_Correctly (line 390) | [Fact]
    method Should_Left_Align_Table_By_Default (line 410) | [Fact]
    method Should_Left_Align_Table_Correctly_When_Wrapped_In_Align_Widget (line 428) | [Fact]
    method Should_Center_Table_Correctly_Using_Aligner (line 446) | [Fact]
    method Should_Center_Table_Correctly_When_Wrapped_In_Align_Widget (line 466) | [Fact]
    method Should_Right_Align_Table_Correctly_Using_Aligner (line 484) | [Fact]
    method Should_Right_Align_Table_Correctly_When_Wrapped_In_Align_Widget (line 504) | [Fact]
    method Should_Render_Table_Nested_In_Panels_Correctly (line 522) | [Fact]
    method Should_Render_Table_With_Column_Justification_Correctly (line 551) | [Fact]
    method Should_Expand_Table_To_Available_Space_If_Specified (line 580) | [Fact]
    method Should_Not_Expand_Fixed_Width_Columns (line 601) | [Fact]
    method Should_Render_Table_With_Multiple_Rows_In_Cell_Correctly (line 627) | [Fact]
    method Should_Render_Table_With_Cell_Padding_Correctly (line 645) | [Fact]
    method Should_Render_Table_Without_Rows (line 667) | [Fact]
    method Should_Not_Draw_Tables_That_Are_Impossible_To_Draw (line 687) | [Fact]
    method Should_Render_Table_With_Title_And_Caption_Correctly (line 725) | [Fact]
    method Should_Left_Align_Table_With_Title_And_Caption_Correctly (line 748) | [Fact]
    method Should_Center_Table_With_Title_And_Caption_Correctly_Using_Aligner (line 769) | [Fact]
    method Should_Right_Align_Table_With_Title_And_Caption_Correctly (line 792) | [Fact]
    method Should_Render_Table_Without_Capitalizing_First_Letter (line 815) | [Fact]
    method Should_Render_With_Folded_Text_Table_Correctly (line 838) | [Fact]
    method Should_Render_Empty_Column_Correctly (line 859) | [Fact]
    method Should_Respect_Cell_Content_Overflow_Crop (line 877) | [Fact]
    method Should_Respect_Cell_Content_Overflow_Ellipsis (line 897) | [Fact]
    method Should_Respect_Cell_Content_Overflow_Fold (line 917) | [Fact]
    method Should_Respect_Markup_Content_Overflow_In_Cell (line 937) | [Fact]
    method Should_Respect_Cell_Content_Overflow_In_Multiple_Rows (line 958) | [Fact]
    method Should_Respect_Cell_Content_Overflow_With_NoWrap_Column (line 984) | [Fact]
    method Should_Not_Throw_When_Rendering_Long_CJK_Header_In_Narrow_Console (line 1004) | [Fact]
    method Should_Not_Throw_When_Rendering_Multiple_Long_CJK_Headers_In_Narrow_Console (line 1020) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/TextPathTests.cs
  class TextPathTests (line 3) | [ExpectationPath("Widgets/TextPath")]
    method Should_Use_Last_Segments_If_Less_Than_Three (line 6) | [Theory]
    method Should_Render_Full_Path_If_Possible (line 21) | [Theory]
    method Should_Pop_Segments_From_Left (line 37) | [Theory]
    method Should_Right_Align_Correctly (line 53) | [Fact]
    method Should_Center_Align_Correctly (line 66) | [Fact]
    method Should_Behave_As_Expected_When_Rendering_Inside_Panel_Columns (line 79) | [Fact]

FILE: src/Spectre.Console.Tests/Unit/Widgets/TextTests.cs
  class TextTests (line 3) | public sealed class TextTests
    class TheLengthProperty (line 5) | public sealed class TheLengthProperty
      method Should_Return_The_Number_Of_Characters (line 7) | [Theory]
    class TheLinesProperty (line 23) | public sealed class TheLinesProperty
      method Should_Return_The_Number_Of_Lines (line 25) | [Theory]
    method Should_Consider_The_Longest_Word_As_Minimum_Width (line 41) | [Fact]
    method Should_Consider_The_Longest_Line_As_Maximum_Width (line 57) | [Fact]
    method Should_Render_Unstyled_Text_As_Expected (line 73) | [Fact]
    method Should_Write_Line_Breaks (line 87) | [Theory]
    method Should_Render_Panel_2 (line 103) | [Fact]
    method Should_Split_Unstyled_Text_To_New_Lines_If_Width_Exceeds_Console_Width (line 118) | [Theory]
    method Should_Overflow_Text_Correctly (line 137) | [Theory]

FILE: src/Spectre.Console.Tests/Unit/Widgets/TreeTests.cs
  class TreeTests (line 3) | [ExpectationPath("Widgets/Tree")]
    method Should_Render_Tree_Correctly (line 6) | [Fact]
    method Should_Render_Tree_With_No_Child_Nodes_Correctly (line 37) | [Fact]
    method Should_Throw_If_Tree_Contains_Cycles (line 52) | [Fact]
    method Should_Render_Tree_With_No_Child_Of_Collapsed_Nodes_Correctly (line 76) | [Fact]
    method Should_Render_Tree_With_No_Child_If_Route_Collapsed_Correctly (line 103) | [Fact]

FILE: src/Spectre.Console.Tests/Utilities/EmbeddedResourceReader.cs
  class EmbeddedResourceReader (line 3) | public static class EmbeddedResourceReader
    method LoadResourceStream (line 5) | public static Stream LoadResourceStream(string resourceName)
    method LoadResourceStream (line 21) | public static Stream LoadResourceStream(Assembly assembly, string reso...

FILE: src/Spectre.Console.Tests/Utilities/FakeTimeProvider.cs
  class FakeTimeProvider (line 3) | internal sealed class FakeTimeProvider : TimeProvider
    method FakeTimeProvider (line 7) | public FakeTimeProvider(DateTime startTime)
    method GetUtcNow (line 12) | public override DateTimeOffset GetUtcNow() => new DateTimeOffset(_utcN...
    method Advance (line 15) | public void Advance(TimeSpan timeSpan) => _utcNow += timeSpan;

FILE: src/Spectre.Console.Tests/Utilities/GitHubIssueAttribute.cs
  class GitHubIssueAttribute (line 3) | [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
    method GitHubIssueAttribute (line 8) | public GitHubIssueAttribute(string url)

FILE: src/Spectre.Console.Tests/Utilities/ModuleInitializerAttribute.cs
  class ModuleInitializerAttribute (line 4) | [AttributeUsage(AttributeTargets.Method, Inherited = false)]

FILE: src/Spectre.Console.Tests/Utilities/TestConsoleExtensions.cs
  class TestConsoleExtensions (line 3) | public static class TestConsoleExtensions
    method WriteNormalizedException (line 9) | public static string WriteNormalizedException(this TestConsole console...
    method NormalizeStackTrace (line 25) | public static string NormalizeStackTrace(string text)

FILE: src/Spectre.Console.Tests/VerifyConfiguration.cs
  class VerifyConfiguration (line 3) | public static class VerifyConfiguration
    method Init (line 5) | [ModuleInitializer]

FILE: src/Spectre.Console/AnsiConsole.Exceptions.cs
  class AnsiConsole (line 6) | public static partial class AnsiConsole
    method WriteException (line 13) | [RequiresDynamicCode(ExceptionFormatter.AotWarning)]
    method WriteException (line 24) | [RequiresDynamicCode(ExceptionFormatter.AotWarning)]

FILE: src/Spectre.Console/AnsiConsole.Live.cs
  class AnsiConsole (line 6) | public static partial class AnsiConsole
    method Live (line 13) | public static LiveDisplay Live(IRenderable target)

FILE: src/Spectre.Console/AnsiConsole.Markup.cs
  class AnsiConsole (line 6) | public static partial class AnsiConsole
    method Markup (line 12) | public static void Markup(string value)
    method Markup (line 22) | public static void Markup(string format, params object[] args)
    method MarkupInterpolated (line 40) | public static void MarkupInterpolated(FormattableString value)
    method Markup (line 51) | public static void Markup(IFormatProvider provider, string format, par...
    method MarkupInterpolated (line 70) | public static void MarkupInterpolated(IFormatProvider provider, Format...
    method MarkupLine (line 79) | public static void MarkupLine(string value)
    method MarkupLine (line 89) | public static void MarkupLine(string format, params object[] args)
    method MarkupLineInterpolated (line 107) | public static void MarkupLineInterpolated(FormattableString value)
    method MarkupLine (line 118) | public static void MarkupLine(IFormatProvider provider, string format,...
    method MarkupLineInterpolated (line 137) | public static void MarkupLineInterpolated(IFormatProvider provider, Fo...

FILE: src/Spectre.Console/AnsiConsole.Progress.cs
  class AnsiConsole (line 6) | public static partial class AnsiConsole
    method Progress (line 12) | public static Progress Progress()
    method Status (line 21) | public static Status Status()

FILE: src/Spectre.Console/AnsiConsole.Prompt.cs
  class AnsiConsole (line 6) | public static partial class AnsiConsole
    method Prompt (line 14) | public static T Prompt<T>(IPrompt<T> prompt)
    method PromptAsync (line 28) | public static Task<T> PromptAsync<T>(IPrompt<T> prompt, CancellationTo...
    method Ask (line 41) | public static T Ask<T>(string prompt)
    method AskAsync (line 53) | public static Task<T> AskAsync<T>(string prompt, CancellationToken can...
    method Ask (line 65) | public static T Ask<T>(string prompt, T defaultValue)
    method AskAsync (line 80) | public static Task<T> AskAsync<T>(string prompt, T defaultValue, Cance...
    method Confirm (line 93) | public static bool Confirm(string prompt, bool defaultValue = true)
    method ConfirmAsync (line 109) | public static Task<bool> ConfirmAsync(string prompt, bool defaultValue...

FILE: src/Spectre.Console/AnsiConsole.Recording.cs
  class AnsiConsole (line 6) | public static partial class AnsiConsole
    method Record (line 11) | public static void Record()
    method ExportText (line 23) | public static string ExportText()
    method ExportHtml (line 37) | public static string ExportHtml()
    method ExportCustom (line 52) | public static string ExportCustom(IAnsiConsoleEncoder encoder)

FILE: src/Spectre.Console/AnsiConsole.Screen.cs
  class AnsiConsole (line 6) | public static partial class AnsiConsole
    method AlternateScreen (line 12) | public static void AlternateScreen(Action action)

FILE: src/Spectre.Console/AnsiConsole.State.cs
  class AnsiConsole (line 6) | public static partial class AnsiConsole
    method Reset (line 41) | public static void Reset()
    method ResetDecoration (line 50) | public static void ResetDecoration()
    method ResetColors (line 58) | public static void ResetColors()

FILE: src/Spectre.Console/AnsiConsole.Write.cs
  class AnsiConsole (line 6) | public static partial class AnsiConsole
    method Write (line 12) | public static void Write(IRenderable renderable)
    method Write (line 23) | public static void Write(string value)
    method Write (line 33) | public static void Write(int value)
    method Write (line 44) | public static void Write(IFormatProvider provider, int value)
    method Write (line 54) | public static void Write(uint value)
    method Write (line 65) | public static void Write(IFormatProvider provider, uint value)
    method Write (line 75) | public static void Write(long value)
    method Write (line 86) | public static void Write(IFormatProvider provider, long value)
    method Write (line 96) | public static void Write(ulong value)
    method Write (line 107) | public static void Write(IFormatProvider provider, ulong value)
    method Write (line 117) | public static void Write(float value)
    method Write (line 128) | public static void Write(IFormatProvider provider, float value)
    method Write (line 138) | public static void Write(double value)
    method Write (line 149) | public static void Write(IFormatProvider provider, double value)
    method Write (line 158) | public static void Write(decimal value)
    method Write (line 168) | public static void Write(IFormatProvider provider, decimal value)
    method Write (line 177) | public static void Write(bool value)
    method Write (line 187) | public static void Write(IFormatProvider provider, bool value)
    method Write (line 196) | public static void Write(char value)
    method Write (line 206) | public static void Write(IFormatProvider provider, char value)
    method Write (line 215) | public static void Write(char[] value)
    method Write (line 225) | public static void Write(IFormatProvider provider, char[] value)
    method Write (line 241) | public static void Write(string format, params object[] args)
    method Write (line 253) | public static void Write(IFormatProvider provider, string format, para...

FILE: src/Spectre.Console/AnsiConsole.WriteLine.cs
  class AnsiConsole (line 6) | public static partial class AnsiConsole
    method WriteLine (line 11) | public static void WriteLine()
    method WriteLine (line 20) | public static void WriteLine(string value)
    method WriteLine (line 30) | public static void WriteLine(int value)
    method WriteLine (line 41) | public static void WriteLine(IFormatProvider provider, int value)
    method WriteLine (line 51) | public static void WriteLine(uint value)
    method WriteLine (line 62) | public static void WriteLine(IFormatProvider provider, uint value)
    method WriteLine (line 72) | public static void WriteLine(long value)
    method WriteLine (line 83) | public static void WriteLine(IFormatProvider provider, long value)
    method WriteLine (line 93) | public static void WriteLine(ulong value)
    method WriteLine (line 104) | public static void WriteLine(IFormatProvider provider, ulong value)
    method WriteLine (line 114) | public static void WriteLine(float value)
    method WriteLine (line 125) | public static void WriteLine(IFormatProvider provider, float value)
    method WriteLine (line 135) | public static void WriteLine(double value)
    method WriteLine (line 146) | public static void WriteLine(IFormatProvider provider, double value)
    method WriteLine (line 156) | public static void WriteLine(decimal value)
    method WriteLine (line 167) | public static void WriteLine(IFormatProvider provider, decimal value)
    method WriteLine (line 177) | public static void WriteLine(bool value)
    method WriteLine (line 188) | public static void WriteLine(IFormatProvider provider, bool value)
    method WriteLine (line 198) | public static void WriteLine(char value)
    method WriteLine (line 209) | public static void WriteLine(IFormatProvider provider, char value)
    method WriteLine (line 219) | public static void WriteLine(char[] value)
    method WriteLine (line 230) | public static void WriteLine(IFormatProvider provider, char[] value)
    method WriteLine (line 249) | public static void WriteLine(string format, params object[] args)
    method WriteLine (line 262) | public static void WriteLine(IFormatProvider provider, string format, ...

FILE: src/Spectre.Console/AnsiConsole.cs
  class AnsiConsole (line 6) | public static partial class AnsiConsole
    method Create (line 62) | public static IAnsiConsole Create(AnsiConsoleSettings settings)
    method Clear (line 70) | public static void Clear()

FILE: src/Spectre.Console/AnsiConsoleFactory.cs
  class AnsiConsoleFactory (line 6) | internal sealed class AnsiConsoleFactory
    method Create (line 8) | public static IAnsiConsole Create(AnsiConsoleSettings settings)

FILE: src/Spectre.Console/AnsiConsoleOutput.cs
  class AnsiConsoleOutput (line 6) | public sealed class AnsiConsoleOutput : IAnsiConsoleOutput
    method AnsiConsoleOutput (line 40) | public AnsiConsoleOutput(TextWriter writer)
    method SetEncoding (line 46) | public void SetEncoding(Encoding encoding)

FILE: src/Spectre.Console/AnsiConsoleSettings.cs
  class AnsiConsoleSettings (line 6) | public sealed class AnsiConsoleSettings
    method AnsiConsoleSettings (line 49) | public AnsiConsoleSettings()

FILE: src/Spectre.Console/BoxBorder.Known.cs
  class BoxBorder (line 6) | public abstract partial class BoxBorder

FILE: src/Spectre.Console/BoxBorder.cs
  class BoxBorder (line 6) | public abstract partial class BoxBorder
    method GetPart (line 18) | public abstract string GetPart(BoxBorderPart part);
  class BoxExtensions (line 24) | public static class BoxExtensions
    method GetSafeBorder (line 32) | public static BoxBorder GetSafeBorder(this BoxBorder border, bool safe)

FILE: src/Spectre.Console/Capabilities.cs
  class Capabilities (line 6) | public sealed class Capabilities : AnsiCapabilities, IReadOnlyCapabilities
    method Create (line 38) | public static Capabilities Create(TextWriter writer, AnsiConsoleSettin...

FILE: src/Spectre.Console/CircularBuffer.cs
  class CircularBuffer (line 30) | [DebuggerDisplay("Count = {Count}")]
    method CircularBuffer (line 42) | public CircularBuffer(int capacity) : this(new List<T>(), capacity, st...
    method CircularBuffer (line 46) | internal CircularBuffer(List<T> buffer, int capacity, int start, int end)
    method IndexOf (line 81) | public int IndexOf(T item)
    method Insert (line 93) | public void Insert(int index, T item)
    method RemoveAt (line 181) | public void RemoveAt(int index)
    method ValidateIndexInRange (line 197) | private void ValidateIndexInRange(int index)
    method Remove (line 205) | public bool Remove(T item) => throw new NotImplementedException();
    method Add (line 221) | public void Add(T item)
    method Clear (line 247) | public void Clear()
    method Contains (line 254) | public bool Contains(T item) => IndexOf(item) != -1;
    method CopyTo (line 256) | public void CopyTo(T[] array, int arrayIndex)
    method ToArray (line 269) | public T[] ToArray()
    method GetEnumerator (line 285) | public IEnumerator<T> GetEnumerator()
    method GetEnumerator (line 293) | IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
    method InternalIndex (line 295) | private int InternalIndex(int index)
    method Increment (line 300) | private void Increment(ref int index)
    method Decrement (line 310) | private void Decrement(ref int index)
    method Clone (line 315) | public CircularBuffer<T> Clone()
    class CircularBufferDebugView (line 323) | private sealed class CircularBufferDebugView(CircularBuffer<T> collect...

FILE: src/Spectre.Console/CursorDirection.cs
  type CursorDirection (line 6) | public enum CursorDirection

FILE: src/Spectre.Console/Emoji.cs
  class Emoji (line 6) | public static partial class Emoji
    method Emoji (line 10) | static Emoji()
    method Remap (line 20) | public static void Remap(string tag, string emoji)
    method Replace (line 36) | public static string Replace(string value)
    method TryGetEmoji (line 77) | private static bool TryGetEmoji(string emoji, out string value)
    method IndexOf (line 95) | private static int IndexOf(this ReadOnlySpan<char> span, char value, i...

FILE: src/Spectre.Console/Enrichment/CI/AppVeyorEnricher.cs
  class AppVeyorEnricher (line 3) | internal sealed class AppVeyorEnricher : IProfileEnricher
    method Enabled (line 7) | public bool Enabled(IDictionary<string, string> environmentVariables)
    method Enrich (line 12) | public void Enrich(Profile profile)

FILE: src/Spectre.Console/Enrichment/CI/AzurePipelinesEnricher.cs
  class AzurePipelinesEnricher (line 3) | internal sealed class AzurePipelinesEnricher : IProfileEnricher
    method Enabled (line 7) | public bool Enabled(IDictionary<string, string> environmentVariables)
    method Enrich (line 13) | public void Enrich(Profile profile)

FILE: src/Spectre.Console/Enrichment/CI/BambooEnricher.cs
  class BambooEnricher (line 3) | internal sealed class BambooEnricher : IProfileEnricher
    method Enabled (line 7) | public bool Enabled(IDictionary<string, string> environmentVariables)
    method Enrich (line 12) | public void Enrich(Profile profile)

FILE: src/Spectre.Console/Enrichment/CI/BitbucketEnricher.cs
  class BitbucketEnricher (line 3) | internal sealed class BitbucketEnricher : IProfileEnricher
    method Enabled (line 7) | public bool Enabled(IDictionary<string, string> environmentVariables)
    method Enrich (line 14) | public void Enrich(Profile profile)

FILE: src/Spectre.Console/Enrichment/CI/BitriseEnricher.cs
  class BitriseEnricher (line 3) | internal sealed class BitriseEnricher : IProfileEnricher
    method Enabled (line 7) | public bool Enabled(IDictionary<string, string> environmentVariables)
    method Enrich (line 12) | public void Enrich(Profile profile)

FILE: src/Spectre.Console/Enrichment/CI/ContinuaEnricher.cs
  class ContinuaEnricher (line 3) | internal sealed class ContinuaEnricher : IProfileEnricher
    method Enabled (line 7) | public bool Enabled(IDictionary<string, string> environmentVariables)
    method Enrich (line 12) | public void Enrich(Profile profile)

FILE: src/Spectre.Console/Enrichment/CI/GitHubEnricher.cs
  class GitHubEnricher (line 3) | internal sealed class GitHubEnricher : IProfileEnricher
    method Enabled (line 7) | public bool Enabled(IDictionary<string, string> environmentVariables)
    method Enrich (line 17) | public void Enrich(Profile profile)

FILE: src/Spectre.Console/Enrichment/CI/GitLabEnricher.cs
  class GitLabEnricher (line 3) | internal sealed class GitLabEnricher : IProfileEnricher
    method Enabled (line 7) | public bool Enabled(IDictionary<string, string> environmentVariables)
    method Enrich (line 17) | public void Enrich(Profile profile)

FILE: src/Spectre.Console/Enrichment/CI/GoCDEnricher.cs
  class GoCDEnricher (line 3) | internal sealed class GoCDEnricher : IProfileEnricher
    method Enabled (line 7) | public bool Enabled(IDictionary<string, string> environmentVariables)
    method Enrich (line 12) | public void Enrich(Profile profile)

FILE: src/Spectre.Console/Enrichment/CI/JenkinsEnricher.cs
  class JenkinsEnricher (line 3) | internal sealed class JenkinsEnricher : IProfileEnricher
    method Enabled (line 7) | public bool Enabled(IDictionary<string, string> environmentVariables)
    method Enrich (line 12) | public void Enrich(Profile profile)

FILE: src/Spectre.Console/Enrichment/CI/MyGetEnricher.cs
  class MyGetEnricher (line 3) | internal sealed class MyGetEnricher : IProfileEnricher
    method Enabled (line 7) | public bool Enabled(IDictionary<string, string> environmentVariables)
    method Enrich (line 17) | public void Enrich(Profile profile)

FILE: src/Spectre.Console/Enrichment/CI/TeamCityEnricher.cs
  class TeamCityEnricher (line 3) | internal sealed class TeamCityEnricher : IProfileEnricher
    method Enabled (line 7) | public bool Enabled(IDictionary<string, string> environmentVariables)
    method Enrich (line 12) | public void Enrich(Profile profile)

FILE: src/Spectre.Console/Enrichment/CI/TfsEnricher.cs
  class TfsEnricher (line 3) | internal sealed class TfsEnricher : IProfileEnricher
    method Enabled (line 7) | public bool Enabled(IDictionary<string, string> environmentVariables)
    method Enrich (line 12) | public void Enrich(Profile profile)

FILE: src/Spectre.Console/Enrichment/CI/TravisEnricher.cs
  class TravisEnricher (line 3) | internal sealed class TravisEnricher : IProfileEnricher
    method Enabled (line 7) | public bool Enabled(IDictionary<string, string> environmentVariables)
    method Enrich (line 12) | public void Enrich(Profile profile)

FILE: src/Spectre.Console/Enrichment/ProfileEnricher.cs
  class ProfileEnricher (line 3) | internal static class ProfileEnricher
    method Enrich (line 23) | public static void Enrich(
    method GetEnrichers (line 48) | private static List<IProfileEnricher> GetEnrichers(ProfileEnrichment s...
    method GetEnvironmentVariables (line 65) | private static IDictionary<string, string> GetEnvironmentVariables(IDi...

FILE: src/Spectre.Console/Enrichment/ProfileEnrichment.cs
  class ProfileEnrichment (line 6) | public sealed class ProfileEnrichment

FILE: src/Spectre.Console/Extensions/AnsiConsoleExtensions.Ansi.cs
  class AnsiConsoleExtensions (line 6) | public static partial class AnsiConsoleExtensions
    method WriteAnsi (line 13) | public static void WriteAnsi(this IAnsiConsole console, string sequence)
    method ToAnsi (line 29) | public static string ToAnsi(this IAnsiConsole console, IRenderable ren...

FILE: src/Spectre.Console/Extensions/AnsiConsoleExtensions.Async.cs
  class SpinnerExtensions (line 6) | public static class SpinnerExtensions
    method Spinner (line 16) | public static async Task Spinner(this Task task, Spinner? spinner = nu...
    method Spinner (line 33) | public static async Task<T> Spinner<T>(this Task<T> task, Spinner? spi...
    method SpinnerInternal (line 41) | private static async Task<T?> SpinnerInternal<T>(Task task, Spinner sp...

FILE: src/Spectre.Console/Extensions/AnsiConsoleExtensions.Exceptions.cs
  class AnsiConsoleExtensions (line 6) | public static partial class AnsiConsoleExtensions
    method WriteException (line 14) | [RequiresDynamicCode(ExceptionFormatter.AotWarning)]
    method WriteException (line 29) | [RequiresDynamicCode(ExceptionFormatter.AotWarning)]

FILE: src/Spectre.Console/Extensions/AnsiConsoleExtensions.Exclusive.cs
  class AnsiConsoleExtensions (line 6) | public static partial class AnsiConsoleExtensions
    method RunExclusive (line 15) | public static T RunExclusive<T>(this IAnsiConsole console, Func<T> func)
    method RunExclusive (line 29) | public static Task<T> RunExclusive<T>(this IAnsiConsole console, Func<...

FILE: src/Spectre.Console/Extensions/AnsiConsoleExtensions.Input.cs
  class AnsiConsoleExtensions (line 6) | public static partial class AnsiConsoleExtensions
    method ReadLine (line 8) | internal static async Task<string> ReadLine(this IAnsiConsole console,...
    method AutoComplete (line 101) | private static string AutoComplete(List<string> autocomplete, string t...
    method GetAutocompleteValue (line 129) | private static string GetAutocompleteValue(AutoCompleteDirection autoC...
    type AutoCompleteDirection (line 152) | private enum AutoCompleteDirection

FILE: src/Spectre.Console/Extensions/AnsiConsoleExtensions.Live.cs
  class AnsiConsoleExtensions (line 6) | public static partial class AnsiConsoleExtensions
    method Live (line 14) | public static LiveDisplay Live(this IAnsiConsole console, IRenderable ...

FILE: src/Spectre.Console/Extensions/AnsiConsoleExtensions.Markup.cs
  class AnsiConsoleExtensions (line 6) | public static partial class AnsiConsoleExtensions
    method Markup (line 14) | public static void Markup(this IAnsiConsole console, string format, pa...
    method MarkupInterpolated (line 35) | public static void MarkupInterpolated(this IAnsiConsole console, Forma...
    method Markup (line 49) | public static void Markup(this IAnsiConsole console, IFormatProvider p...
    method MarkupInterpolated (line 71) | public static void MarkupInterpolated(this IAnsiConsole console, IForm...
    method Markup (line 83) | public static void Markup(this IAnsiConsole console, string value)
    method MarkupLine (line 96) | public static void MarkupLine(this IAnsiConsole console, string format...
    method MarkupLineInterpolated (line 117) | public static void MarkupLineInterpolated(this IAnsiConsole console, F...
    method MarkupLine (line 129) | public static void MarkupLine(this IAnsiConsole console, string value)
    method MarkupLine (line 143) | public static void MarkupLine(this IAnsiConsole console, IFormatProvid...
    method MarkupLineInterpolated (line 165) | public static void MarkupLineInterpolated(this IAnsiConsole console, I...

FILE: src/Spectre.Console/Extensions/AnsiConsoleExtensions.Progress.cs
  class AnsiConsoleExtensions (line 6) | public static partial class AnsiConsoleExtensions
    method Progress (line 13) | public static Progress Progress(this IAnsiConsole console)
    method Status (line 25) | public static Status Status(this IAnsiConsole console)

FILE: src/Spectre.Console/Extensions/AnsiConsoleExtensions.Prompt.cs
  class AnsiConsoleExtensions (line 6) | public static partial class AnsiConsoleExtensions
    method Prompt (line 15) | public static T Prompt<T>(this IAnsiConsole console, IPrompt<T> prompt)
    method Ask (line 29) | public static T Ask<T>(this IAnsiConsole console, string prompt)
    method Ask (line 44) | public static T Ask<T>(this IAnsiConsole console, string prompt, Cultu...
    method Confirm (line 60) | public static bool Confirm(this IAnsiConsole console, string prompt, b...
    method PromptAsync (line 79) | public static Task<T> PromptAsync<T>(this IAnsiConsole console, IPromp...
    method AskAsync (line 95) | public static Task<T> AskAsync<T>(this IAnsiConsole console, string pr...
    method AskAsync (line 111) | public static Task<T> AskAsync<T>(this IAnsiConsole console, string pr...
    method ConfirmAsync (line 128) | public static Task<bool> ConfirmAsync(this IAnsiConsole console, strin...

FILE: src/Spectre.Console/Extensions/AnsiConsoleExtensions.Recording.cs
  class AnsiConsoleExtensions (line 6) | public static partial class AnsiConsoleExtensions
    method CreateRecorder (line 13) | public static Recorder CreateRecorder(this IAnsiConsole console)

FILE: src/Spectre.Console/Extensions/AnsiConsoleExtensions.Screen.cs
  class AnsiConsoleExtensions (line 6) | public static partial class AnsiConsoleExtensions
    method AlternateScreen (line 13) | public static void AlternateScreen(this IAnsiConsole console, Action a...

FILE: src/Spectre.Console/Extensions/AnsiConsoleExtensions.Write.cs
  class AnsiConsoleExtensions (line 6) | public static partial class AnsiConsoleExtensions
    method Write (line 13) | public static void Write(this IAnsiConsole console, string text)
    method Write (line 27) | public static void Write(this IAnsiConsole console, string text, Style...

FILE: src/Spectre.Console/Extensions/AnsiConsoleExtensions.WriteLine.cs
  class AnsiConsoleExtensions (line 6) | public static partial class AnsiConsoleExtensions
    method WriteLine (line 12) | public static void WriteLine(this IAnsiConsole console)
    method WriteLine (line 24) | public static void WriteLine(this IAnsiConsole console, string text)
    method WriteLine (line 38) | public static void WriteLine(this IAnsiConsole console, string text, S...

FILE: src/Spectre.Console/Extensions/AnsiConsoleExtensions.cs
  class AnsiConsoleExtensions (line 6) | public static partial class AnsiConsoleExtensions
    method Clear (line 12) | public static void Clear(this IAnsiConsole console)

FILE: src/Spectre.Console/Extensions/AnsiWriterExtensions.cs
  class AnsiWriterExtensions (line 3) | internal static class AnsiWriterExtensions
    method Write (line 5) | public static void Write(this AnsiWriter writer, IAnsiConsole console,...

FILE: src/Spectre.Console/Extensions/Bcl/CharExtensions.cs
  class CharExtensions (line 6) | public static partial class CharExtensions
    method GetCellWidth (line 14) | public static int GetCellWidth(this char character)
    method IsDigit (line 20) | internal static bool IsDigit(this char character, int min = 0)

FILE: src/Spectre.Console/Extensions/Bcl/DayOfWeekExtensions.cs
  class DayOfWeekExtensions (line 3) | internal static class DayOfWeekExtensions
    method GetAbbreviatedDayName (line 5) | public static string GetAbbreviatedDayName(this DayOfWeek day, Culture...
    method GetNextWeekDay (line 13) | public static DayOfWeek GetNextWeekDay(this DayOfWeek day)

FILE: src/Spectre.Console/Extensions/Bcl/DictionaryExtensions.cs
  class DictionaryExtensions (line 3) | internal static class DictionaryExtensions
    method Deconstruct (line 5) | public static void Deconstruct<T1, T2>(this KeyValuePair<T1, T2> tuple...

FILE: src/Spectre.Console/Extensions/Bcl/EnumerableExtensions.cs
  class EnumerableExtensions (line 3) | internal static class EnumerableExtensions
    method ReverseEnumerable (line 7) | public static IEnumerable<T> ReverseEnumerable<T>(this IEnumerable<T> ...
    method None (line 14) | public static bool None<T>(this IEnumerable<T> source, Func<T, bool> p...
    method Repeat (line 19) | public static IEnumerable<T> Repeat<T>(this IEnumerable<T> source, int...
    method IndexOf (line 30) | public static int IndexOf<T>(this IEnumerable<T> source, T item)
    method GetCount (line 46) | public static int GetCount<T>(this IEnumerable<T> source)
    method ForEach (line 61) | public static void ForEach<T>(this IEnumerable<T> source, Action<T> ac...
    method AnyTrue (line 69) | public static bool AnyTrue(this IEnumerable<bool> source)
    method Enumerate (line 74) | public static IEnumerable<(int Index, bool First, bool Last, T Item)> ...
    method Enumerate (line 81) | public static IEnumerable<(int Index, bool First, bool Last, T Item)> ...
    method SelectIndex (line 98) | public static IEnumerable<TResult> SelectIndex<T, TResult>(this IEnume...
    method Zip (line 104) | public static IEnumerable<(TFirst First, TSecond Second)> Zip<TFirst, ...
    method ZipThree (line 111) | public static IEnumerable<(TFirst First, TSecond Second, TThird Third)...

FILE: src/Spectre.Console/Extensions/Bcl/ExceptionExtensions.cs
  class ExceptionExtensions (line 6) | public static class ExceptionExtensions
    method GetRenderable (line 14) | [RequiresDynamicCode(ExceptionFormatter.AotWarning)]
    method GetRenderable (line 31) | [RequiresDynamicCode(ExceptionFormatter.AotWarning)]

FILE: src/Spectre.Console/Extensions/Bcl/Int32Extensions.cs
  class Int32Extensions (line 3) | internal static class Int32Extensions
    method Clamp (line 5) | public static int Clamp(this int value, int min, int max)

FILE: src/Spectre.Console/Extensions/Bcl/ListExtensions.cs
  class ListExtensions (line 3) | internal static class ListExtensions
    method RemoveLast (line 5) | public static void RemoveLast<T>(this List<T> list)
    method AddOrReplaceLast (line 15) | public static void AddOrReplaceLast<T>(this List<T> list, T item)

FILE: src/Spectre.Console/Extensions/Bcl/StackExtensions.cs
  class StackExtensions (line 3) | internal static class StackExtensions
    method PushRange (line 5) | public static void PushRange<T>(this Stack<T> stack, IEnumerable<T> so...

FILE: src/Spectre.Console/Extensions/Bcl/StringBuilderExtensions.cs
  class StringBuilderExtensions (line 3) | internal static class StringBuilderExtensions
    method AppendWithStyle (line 5) | public static StringBuilder AppendWithStyle(this StringBuilder builder...
    method AppendWithStyle (line 10) | public static StringBuilder AppendWithStyle(this StringBuilder builder...
    method AppendSpan (line 26) | public static void AppendSpan(this StringBuilder builder, ReadOnlySpan...

FILE: src/Spectre.Console/Extensions/Bcl/StringExtensions.cs
  class StringExtensions (line 6) | public static class StringExtensions
    method GetCellWidth (line 18) | public static int GetCellWidth(this string text)
    method CapitalizeFirstLetter (line 23) | internal static string CapitalizeFirstLetter(this string? text, Cultur...
    method RemoveNewLines (line 40) | internal static string? RemoveNewLines(this string? text)
    method NormalizeNewLines (line 46) | internal static string NormalizeNewLines(this string? text, bool nativ...
    method SplitLines (line 59) | internal static string[] SplitLines(this string text)
    method SplitWords (line 65) | internal static string[] SplitWords(this string word, StringSplitOptio...
    method Repeat (line 109) | internal static string Repeat(this string text, int count)
    method ReplaceExact (line 126) | internal static string ReplaceExact(this string text, string oldValue,...
    method ContainsExact (line 135) | internal static bool ContainsExact(this string text, string value)
    method Contains (line 145) | internal static bool Contains(this string target, string value, System...
    method Mask (line 157) | public static string Mask(this string value, char? mask)

FILE: src/Spectre.Console/Extensions/Bcl/TextWriterExtensions.cs
  class TextWriterExtensions (line 3) | internal static class TextWriterExtensions
    method IsStandardOut (line 5) | public static bool IsStandardOut(this TextWriter writer)
    method IsStandardError (line 17) | public static bool IsStandardError(this TextWriter writer)

FILE: src/Spectre.Console/Generated/Backport.System.Threading.Lock.SourceGenerator/Backport.System.Threading.Lock.SourceGenerator.Generator/Backport.System.Threading.Lock.SourceGenerator.Lock.cs
  class Lock (line 24) | internal
    method Enter (line 44) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method TryEnter (line 53) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method TryEnter (line 66) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method TryEnter (line 77) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Exit (line 84) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method EnterScope (line 102) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    type Scope (line 112) | public ref struct Scope(Lock @lock)
      method Dispose (line 124) | [MethodImpl(MethodImplOptions.AggressiveInlining)]

FILE: src/Spectre.Console/Generated/Backport.System.Threading.Lock.SourceGenerator/Backport.System.Threading.Lock.SourceGenerator.Generator/Backport.System.Threading.Lock.SourceGenerator.LockFactory.cs
  class LockFactory (line 22) | public static class LockFactory
    method Create (line 29) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Create (line 52) | public static Lock Create() => new();
  class LockFactory (line 38) | internal
    method Create (line 29) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
    method Create (line 52) | public static Lock Create() => new();

FILE: src/Spectre.Console/Generated/Backport.System.Threading.Lock.SourceGenerator/Backport.System.Threading.Lock.SourceGenerator.Generator/Backport.System.Threading.Lock.SourceGenerator.ThreadAbortableLock.cs
  method Lock (line 41) | internal Lock()
  method Enter (line 62) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
  method TryEnter (line 73) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
  method TryEnter (line 88) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
  method TryEnter (line 101) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
  method Exit (line 110) | [MethodImpl(MethodImplOptions.AggressiveInlining)]
  method EnterScope (line 132) | [Obsolete("This method is a best-effort at hardening against thread abor...
  method EnterScope (line 152) | public Scope EnterScope()
  type Scope (line 162) | public ref struct Scope(Lock @lock)
    method Dispose (line 177) | public readonly void Dispose() => @lock.Exit();

FILE: src/Spectre.Console/Generated/Spectre.Console.SourceGenerator/Spectre.Console.SourceGenerator.Colors.ColorGenerator/Color.Generated.g.cs
  type Color (line 17) | public partial struct Color
    method Color (line 19) | internal Color(byte number, byte red, byte green, byte blue, bool isDe...

FILE: src/Spectre.Console/Generated/Spectre.Console.SourceGenerator/Spectre.Console.SourceGenerator.Colors.ColorGenerator/ColorPalette.Generated.g.cs
  class ColorPalette (line 14) | internal static partial class ColorPalette
    method GenerateLegacyPalette (line 16) | private static List<Color> GenerateLegacyPalette()
    method GenerateStandardPalette (line 31) | private static List<Color> GenerateStandardPalette(IReadOnlyList<Color...
    method GenerateEightBitPalette (line 46) | private static List<Color> GenerateEightBitPalette(IReadOnlyList<Color...

FILE: src/Spectre.Console/Generated/Spectre.Console.SourceGenerator/Spectre.Console.SourceGenerator.Colors.ColorGenerator/ColorTable.Generated.g.cs
  class ColorTable (line 15) | internal static partial class ColorTable
    method GenerateTable (line 17) | private static Dictionary<string, int> GenerateTable()

FILE: src/Spectre.Console/Generated/Spectre.Console.SourceGenerator/Spectre.Console.SourceGenerator.Emojis.EmojiGenerator/Emoji.Generated.g.cs
  class Emoji (line 18) | public static partial class Emoji
    class Known (line 1457) | public static class Known

FILE: src/Spectre.Console/Generated/Spectre.Console.SourceGenerator/Spectre.Console.SourceGenerator.Spinners.SpinnerGenerator/Spinner.Generated.g.cs
  class Spinner (line 18) | public abstract partial class Spinner
    class DefaultSpinner (line 20) | private sealed class DefaultSpinner : Spinner
    class AsciiSpinner (line 36) | private sealed class AsciiSpinner : Spinner
    class DotsSpinner (line 52) | private sealed class DotsSpinner : Spinner
    class Dots2Spinner (line 70) | private sealed class Dots2Spinner : Spinner
    class Dots3Spinner (line 86) | private sealed class Dots3Spinner : Spinner
    class Dots4Spinner (line 104) | private sealed class Dots4Spinner : Spinner
    class Dots5Spinner (line 126) | private sealed class Dots5Spinner : Spinner
    class Dots6Spinner (line 151) | private sealed class Dots6Spinner : Spinner
    class Dots7Spinner (line 183) | private sealed class Dots7Spinner : Spinner
    class Dots8Spinner (line 215) | private sealed class Dots8Spinner : Spinner
    class Dots9Spinner (line 252) | private sealed class Dots9Spinner : Spinner
    class Dots10Spinner (line 268) | private sealed class Dots10Spinner : Spinner
    class Dots11Spinner (line 283) | private sealed class Dots11Spinner : Spinner
    class Dots12Spinner (line 299) | private sealed class Dots12Spinner : Spinner
    class Dots13Spinner (line 363) | private sealed class Dots13Spinner : Spinner
    class Dots14Spinner (line 379) | private sealed class Dots14Spinner : Spinner
    class Dots8BitSpinner (line 399) | private sealed class Dots8BitSpinner : Spinner
    class DotsCircleSpinner (line 663) | private sealed class DotsCircleSpinner : Spinner
    class SandSpinner (line 679) | private sealed class SandSpinner : Spinner
    class LineSpinner (line 722) | private sealed class LineSpinner : Spinner
    class Line2Spinner (line 734) | private sealed class Line2Spinner : Spinner
    class PipeSpinner (line 748) | private sealed class PipeSpinner : Spinner
    class SimpleDotsSpinner (line 764) | private sealed class SimpleDotsSpinner : Spinner
    class SimpleDotsScrollingSpinner (line 776) | private sealed class SimpleDotsScrollingSpinner : Spinner
    class StarSpinner (line 790) | private sealed class StarSpinner : Spinner
    class Star2Spinner (line 804) | private sealed class Star2Spinner : Spinner
    class FlipSpinner (line 815) | private sealed class FlipSpinner : Spinner
    class HamburgerSpinner (line 835) | private sealed class HamburgerSpinner : Spinner
    class GrowVerticalSpinner (line 846) | private sealed class GrowVerticalSpinner : Spinner
    class GrowHorizontalSpinner (line 864) | private sealed class GrowHorizontalSpinner : Spinner
    class BalloonSpinner (line 884) | private sealed class BalloonSpinner : Spinner
    class Balloon2Spinner (line 899) | private sealed class Balloon2Spinner : Spinner
    class NoiseSpinner (line 914) | private sealed class NoiseSpinner : Spinner
    class BounceSpinner (line 925) | private sealed class BounceSpinner : Spinner
    class BoxBounceSpinner (line 937) | private sealed class BoxBounceSpinner : Spinner
    class BoxBounce2Spinner (line 949) | private sealed class BoxBounce2Spinner : Spinner
    class TriangleSpinner (line 961) | private sealed class TriangleSpinner : Spinner
    class BinarySpinner (line 973) | private sealed class BinarySpinner : Spinner
    class ArcSpinner (line 991) | private sealed class ArcSpinner : Spinner
    class CircleSpinner (line 1005) | private sealed class CircleSpinner : Spinner
    class SquareCornersSpinner (line 1016) | private sealed class SquareCornersSpinner : Spinner
    class CircleQuartersSpinner (line 1028) | private sealed class CircleQuartersSpinner : Spinner
    class CircleHalvesSpinner (line 1040) | private sealed class CircleHalvesSpinner : Spinner
    class SquishSpinner (line 1052) | private sealed class SquishSpinner : Spinner
    class ToggleSpinner (line 1062) | private sealed class ToggleSpinner : Spinner
    class Toggle2Spinner (line 1072) | private sealed class Toggle2Spinner : Spinner
    class Toggle3Spinner (line 1082) | private sealed class Toggle3Spinner : Spinner
    class Toggle4Spinner (line 1092) | private sealed class Toggle4Spinner : Spinner
    class Toggle5Spinner (line 1104) | private sealed class Toggle5Spinner : Spinner
    class Toggle6Spinner (line 1114) | private sealed class Toggle6Spinner : Spinner
    class Toggle7Spinner (line 1124) | private sealed class Toggle7Spinner : Spinner
    class Toggle8Spinner (line 1134) | private sealed class Toggle8Spinner : Spinner
    class Toggle9Spinner (line 1144) | private sealed class Toggle9Spinner : Spinner
    class Toggle10Spinner (line 1154) | private sealed class Toggle10Spinner : Spinner
    class Toggle11Spinner (line 1165) | private sealed class Toggle11Spinner : Spinner
    class Toggle12Spinner (line 1175) | private sealed class Toggle12Spinner : Spinner
    class Toggle13Spinner (line 1185) | private sealed class Toggle13Spinner : Spinner
    class ArrowSpinner (line 1196) | private sealed class ArrowSpinner : Spinner
    class Arrow2Spinner (line 1212) | private sealed class Arrow2Spinner : Spinner
    class Arrow3Spinner (line 1228) | private sealed class Arrow3Spinner : Spinner
    class BouncingBarSpinner (line 1242) | private sealed class BouncingBarSpinner : Spinner
    class BouncingBallSpinner (line 1266) | private sealed class BouncingBallSpinner : Spinner
    class SmileySpinner (line 1284) | private sealed class SmileySpinner : Spinner
    class MonkeySpinner (line 1294) | private sealed class MonkeySpinner : Spinner
    class HeartsSpinner (line 1306) | private sealed class HeartsSpinner : Spinner
    class ClockSpinner (line 1319) | private sealed class ClockSpinner : Spinner
    class EarthSpinner (line 1339) | private sealed class EarthSpinner : Spinner
    class MaterialSpinner (line 1350) | private sealed class MaterialSpinner : Spinner
    class MoonSpinner (line 1450) | private sealed class MoonSpinner : Spinner
    class RunnerSpinner (line 1466) | private sealed class RunnerSpinner : Spinner
    class PongSpinner (line 1476) | private sealed class PongSpinner : Spinner
    class SharkSpinner (line 1514) | private sealed class SharkSpinner : Spinner
    class DqpbSpinner (line 1548) | private sealed class DqpbSpinner : Spinner
    class WeatherSpinner (line 1560) | private sealed class WeatherSpinner : Spinner
    class ChristmasSpinner (line 1591) | private sealed class ChristmasSpinner : Spinner
    class GrenadeSpinner (line 1601) | private sealed class GrenadeSpinner : Spinner
    class PointSpinner (line 1623) | private sealed class PointSpinner : Spinner
    class LayerSpinner (line 1636) | private sealed class LayerSpinner : Spinner
    class BetaWaveSpinner (line 1647) | private sealed class BetaWaveSpinner : Spinner
    class FingerDanceSpinner (line 1662) | private sealed class FingerDanceSpinner : Spinner
    class FistBumpSpinner (line 1676) | private sealed class FistBumpSpinner : Spinner
    class SoccerHeaderSpinner (line 1691) | private sealed class SoccerHeaderSpinner : Spinner
    class MindblownSpinner (line 1711) | private sealed class MindblownSpinner : Spinner
    class SpeakerSpinner (line 1733) | private sealed class SpeakerSpinner : Spinner
    class OrangePulseSpinner (line 1745) | private sealed class OrangePulseSpinner : Spinner
    class BluePulseSpinner (line 1758) | private sealed class BluePulseSpinner : Spinner
    class OrangeBluePulseSpinner (line 1771) | private sealed class OrangeBluePulseSpinner : Spinner
    class TimeTravelSpinner (line 1789) | private sealed class TimeTravelSpinner : Spinner
    class AestheticSpinner (line 1809) | private sealed class AestheticSpinner : Spinner
    class DwarfFortressSpinner (line 1825) | private sealed class DwarfFortressSpinner : Spinner
    class Known (line 1969) | public static class Known

FILE: src/Spectre.Console/HorizontalAlignment.cs
  type HorizontalAlignment (line 6) | public enum HorizontalAlignment

FILE: src/Spectre.Console/IAlignable.cs
  type IAlignable (line 6) | public interface IAlignable
  class AlignableExtensions (line 17) | public static class AlignableExtensions
    method Alignment (line 26) | public static T Alignment<T>(this T obj, Justify? alignment)
    method LeftAligned (line 41) | public static T LeftAligned<T>(this T obj)
    method Centered (line 56) | public static T Centered<T>(this T obj)
    method RightAligned (line 71) | public static T RightAligned<T>(this T obj)

FILE: src/Spectre.Console/IAnsiConsole.cs
  type IAnsiConsole (line 6) | public interface IAnsiConsole
    method Clear (line 37) | void Clear(bool home);
    method Write (line 43) | void Write(IRenderable renderable);
    method WriteAnsi (line 49) | void WriteAnsi(Action<AnsiWriter> action);

FILE: src/Spectre.Console/IAnsiConsoleCursor.cs
  type IAnsiConsoleCursor (line 6) | public interface IAnsiConsoleCursor
    method Show (line 12) | void Show(bool show);
    method SetPosition (line 19) | void SetPosition(int column, int line);
    method Move (line 26) | void Move(CursorDirection direction, int steps);
  class CursorExtensions (line 32) | public static class CursorExtensions
    method Show (line 38) | public static void Show(this IAnsiConsoleCursor cursor)
    method Hide (line 49) | public static void Hide(this IAnsiConsoleCursor cursor)
    method MoveUp (line 60) | public static void MoveUp(this IAnsiConsoleCursor cursor)
    method MoveUp (line 72) | public static void MoveUp(this IAnsiConsoleCursor cursor, int steps)
    method MoveDown (line 83) | public static void MoveDown(this IAnsiConsoleCursor cursor)
    method MoveDown (line 95) | public static void MoveDown(this IAnsiConsoleCursor cursor, int steps)
    method MoveLeft (line 106) | public static void MoveLeft(this IAnsiConsoleCursor cursor)
    method MoveLeft (line 118) | public static void MoveLeft(this IAnsiConsoleCursor cursor, int steps)
    method MoveRight (line 129) | public static void MoveRight(this IAnsiConsoleCursor cursor)
    method MoveRight (line 141) | public static void MoveRight(this IAnsiConsoleCursor cursor, int steps)

FILE: src/Spectre.Console/IAnsiConsoleInput.cs
  type IAnsiConsoleInput (line 6) | public interface IAnsiConsoleInput
    method IsKeyAvailable (line 13) | bool IsKeyAvailable();
    method ReadKey (line 20) | ConsoleKeyInfo? ReadKey(bool intercept);
    method ReadKeyAsync (line 28) | Task<ConsoleKeyInfo?> ReadKeyAsync(bool intercept, CancellationToken c...

FILE: src/Spectre.Console/IAnsiConsoleOutput.cs
  type IAnsiConsoleOutput (line 6) | public interface IAnsiConsoleOutput
    method SetEncoding (line 32) | void SetEncoding(Encoding encoding);

FILE: src/Spectre.Console/IColumn.cs
  type IColumn (line 6) | public interface IColumn : IAlignable, IPaddable
  class ColumnExtensions (line 23) | public static class ColumnExtensions
    method NoWrap (line 31) | public static T NoWrap<T>(this T obj)
    method Width (line 47) | public static T Width<T>(this T obj, int? width)

FILE: src/Spectre.Console/IExclusivityMode.cs
  type IExclusivityMode (line 6) | public interface IExclusivityMode
    method Run (line 14) | T Run<T>(Func<T> func);
    method RunAsync (line 22) | Task<T> RunAsync<T>(Func<Task<T>> func);

FILE: src/Spectre.Console/IExpandable.cs
  type IExpandable (line 6) | public interface IExpandable
  class ExpandableExtensions (line 19) | public static class ExpandableExtensions
    method Collapse (line 28) | public static T Collapse<T>(this T obj)
    method Expand (line 43) | public static T Expand<T>(this T obj)

FILE: src/Spectre.Console/IHasBorder.cs
  type IHasBorder (line 6) | public interface IHasBorder
  class HasBorderExtensions (line 24) | public static class HasBorderExtensions
    method SafeBorder (line 32) | public static T SafeBorder<T>(this T obj)
    method NoSafeBorder (line 47) | public static T NoSafeBorder<T>(this T obj)
    method BorderStyle (line 63) | public static T BorderStyle<T>(this T obj, Style style)
    method BorderColor (line 79) | public static T BorderColor<T>(this T obj, Color color)

FILE: src/Spectre.Console/IHasBoxBorder.cs
  type IHasBoxBorder (line 6) | public interface IHasBoxBorder
  class HasBoxBorderExtensions (line 17) | public static class HasBoxBorderExtensions
    method Border (line 26) | public static T Border<T>(this T obj, BoxBorder border)
    method NoBorder (line 41) | public static T NoBorder<T>(this T obj)
    method SquareBorder (line 53) | public static T SquareBorder<T>(this T obj)
    method AsciiBorder (line 65) | public static T AsciiBorder<T>(this T obj)
    method RoundedBorder (line 77) | public static T RoundedBorder<T>(this T obj)
    method HeavyBorder (line 89) | public static T HeavyBorder<T>(this T obj)
    method DoubleBorder (line 101) | public static T DoubleBorder<T>(this T obj)

FILE: src/Spectre.Console/IHasCulture.cs
  type IHasCulture (line 6) | public interface IHasCulture
  class HasCultureExtensions (line 17) | public static class HasCultureExtensions
    method Culture (line 26) | public static T Culture<T>(this T obj, CultureInfo culture)
    method Culture (line 43) | public static T Culture<T>(this T obj, string name)
    method Culture (line 59) | public static T Culture<T>(this T obj, int culture)

FILE: src/Spectre.Console/IHasJustification.cs
  type IHasJustification (line 6) | public interface IHasJustification
  class HasJustificationExtensions (line 17) | public static class HasJustificationExtensions
    method Justify (line 26) | public static T Justify<T>(this T obj, Justify? alignment)
    method LeftJustified (line 41) | public static T LeftJustified<T>(this T obj)
    method Centered (line 56) | public static T Centered<T>(this T obj)
    method RightJustified (line 71) | public static T RightJustified<T>(this T obj)

FILE: src/Spectre.Console/IHasTableBorder.cs
  type IHasTableBorder (line 6) | public interface IHasTableBorder : IHasBorder
  class HasTableBorderExtensions (line 17) | public static class HasTableBorderExtensions
    method NoBorder (line 25) | public static T NoBorder<T>(this T obj)
    method SquareBorder (line 37) | public static T SquareBorder<T>(this T obj)
    method AsciiBorder (line 49) | public static T AsciiBorder<T>(this T obj)
    method Ascii2Border (line 61) | public static T Ascii2Border<T>(this T obj)
    method AsciiDoubleHeadBorder (line 73) | public static T AsciiDoubleHeadBorder<T>(this T obj)
    method RoundedBorder (line 85) | public static T RoundedBorder<T>(this T obj)
    method MinimalBorder (line 97) | public static T MinimalBorder<T>(this T obj)
    method MinimalHeavyHeadBorder (line 109) | public static T MinimalHeavyHeadBorder<T>(this T obj)
    method MinimalDoubleHeadBorder (line 121) | public static T MinimalDoubleHeadBorder<T>(this T obj)
    method SimpleBorder (line 133) | public static T SimpleBorder<T>(this T obj)
    method SimpleHeavyBorder (line 145) | public static T SimpleHeavyBorder<T>(this T obj)
    method HorizontalBorder (line 157) | public static T HorizontalBorder<T>(this T obj)
    method HeavyBorder (line 169) | public static T HeavyBorder<T>(this T obj)
    method HeavyEdgeBorder (line 181) | public static T HeavyEdgeBorder<T>(this T obj)
    method HeavyHeadBorder (line 193) | public static T HeavyHeadBorder<T>(this T obj)
    method DoubleBorder (line 205) | public static T DoubleBorder<T>(this T obj)
    method DoubleEdgeBorder (line 217) | public static T DoubleEdgeBorder<T>(this T obj)
    method MinimalistBorder (line 229) | public static T MinimalistBorder<T>(this T obj)
    method MarkdownBorder (line 241) | public static T MarkdownBorder<T>(this T obj)
    method Border (line 254) | public static T Border<T>(this T obj, TableBorder border)

FILE: src/Spectre.Console/IHasTreeNodes.cs
  type IHasTreeNodes (line 6) | public interface IHasTreeNodes
  class HasTreeNodeExtensions (line 17) | public static class HasTreeNodeExtensions
    method AddNode (line 26) | public static TreeNode AddNode<T>(this T obj, string markup)
    method AddNode (line 46) | public static TreeNode AddNode<T>(this T obj, IRenderable renderable)
    method AddNode (line 68) | public static TreeNode AddNode<T>(this T obj, TreeNode node)
    method AddNodes (line 88) | public static void AddNodes<T>(this T obj, params string[] nodes)
    method AddNodes (line 107) | public static void AddNodes<T>(this T obj, IEnumerable<string> nodes)
    method AddNodes (line 126) | public static void AddNodes<T>(this T obj, params IRenderable[] nodes)
    method AddNodes (line 145) | public static void AddNodes<T>(this T obj, IEnumerable<IRenderable> no...
    method AddNodes (line 164) | public static void AddNodes<T>(this T obj, params TreeNode[] nodes)
    method AddNodes (line 183) | public static void AddNodes<T>(this T obj, IEnumerable<TreeNode> nodes)

FILE: src/Spectre.Console/IHasVisibility.cs
  type IHasVisibility (line 6) | public interface IHasVisibility
  class VisibilityExtensions (line 18) | public static class VisibilityExtensions
    method Invisible (line 26) | public static T Invisible<T>(this T obj)
    method Visible (line 41) | public static T Visible<T>(this T obj)

FILE: src/Spectre.Console/IOverflowable.cs
  type IOverflowable (line 6) | public interface IOverflowable
  class OverflowableExtensions (line 17) | public static class OverflowableExtensions
    method Fold (line 25) | public static T Fold<T>(this T obj)
    method Crop (line 39) | public static T Crop<T>(this T obj)
    method Ellipsis (line 53) | public static T Ellipsis<T>(this T obj)
    method Overflow (line 68) | public static T Overflow<T>(this T obj, Overflow overflow)

FILE: src/Spectre.Console/IPaddable.cs
  type IPaddable (line 6) | public interface IPaddable
  class PaddableExtensions (line 17) | public static class PaddableExtensions
    method PadLeft (line 26) | public static T PadLeft<T>(this T obj, int left)
    method PadTop (line 41) | public static T PadTop<T>(this T obj, int top)
    method PadRight (line 56) | public static T PadRight<T>(this T obj, int right)
    method PadBottom (line 71) | public static T PadBottom<T>(this T obj, int bottom)
    method Padding (line 89) | public static T Padding<T>(this T obj, int left, int top, int right, i...
    method Padding (line 103) | public static T Padding<T>(this T obj, int horizontal, int vertical)
    method Padding (line 116) | public static T Padding<T>(this T obj, Padding padding)

FILE: src/Spectre.Console/IProfileEnricher.cs
  type IProfileEnricher (line 6) | public interface IProfileEnricher
    method Enabled (line 18) | bool Enabled(IDictionary<string, string> environmentVariables);
    method Enrich (line 24) | void Enrich(Profile profile);

FILE: src/Spectre.Console/IReadOnlyCapabilities.cs
  type IReadOnlyCapabilities (line 6) | public interface IReadOnlyCapabilities : IReadOnlyAnsiCapabilities

FILE: src/Spectre.Console/InteractionDetector.cs
  class InteractionDetector (line 3) | internal static class InteractionDetector
    method IsInteractive (line 5) | public static bool IsInteractive(InteractionSupport interaction)
    method IsInteractive (line 14) | internal static bool IsInteractive(

FILE: src/Spectre.Console/InteractionSupport.cs
  type InteractionSupport (line 6) | public enum InteractionSupport

FILE: src/Spectre.Console/Internal/Aligner.cs
  class Aligner (line 3) | internal static class Aligner
    method Align (line 5) | public static string Align(string text, Justify? alignment, int maxWidth)
    method Align (line 48) | public static void Align<T>(T segments, Justify? alignment, int maxWidth)
    method AlignHorizontally (line 93) | public static void AlignHorizontally<T>(T segments, HorizontalAlignmen...

FILE: src/Spectre.Console/Internal/Backends/Ansi/AnsiConsoleBackend.cs
  class AnsiConsoleBackend (line 3) | internal sealed class AnsiConsoleBackend : IAnsiConsoleBackend
    method AnsiConsoleBackend (line 11) | public AnsiConsoleBackend(IAnsiConsole console)
    method Clear (line 19) | public void Clear(bool home)
    method Write (line 30) | public void Write(IRenderable renderable)
    method Write (line 35) | public void Write(Action<AnsiWriter> action)

FILE: src/Spectre.Console/Internal/Backends/Ansi/AnsiConsoleCursor.cs
  class AnsiConsoleCursor (line 3) | internal sealed class AnsiConsoleCursor : IAnsiConsoleCursor
    method AnsiConsoleCursor (line 7) | public AnsiConsoleCursor(AnsiConsoleBackend backend)
    method Show (line 12) | public void Show(bool show)
    method Move (line 24) | public void Move(CursorDirection direction, int steps)
    method SetPosition (line 48) | public void SetPosition(int column, int line)

FILE: src/Spectre.Console/Internal/Backends/Ansi/AnsiStringWriter.cs
  class AnsiStringWriter (line 3) | internal sealed class AnsiStringWriter
    method AnsiStringWriter (line 11) | private AnsiStringWriter()
    method Write (line 28) | public string Write(IReadOnlyCapabilities capabilities, Action<AnsiWri...

FILE: src/Spectre.Console/Internal/Backends/AnsiConsoleFacade.cs
  class AnsiConsoleFacade (line 3) | internal sealed class AnsiConsoleFacade : IAnsiConsole
    method AnsiConsoleFacade (line 15) | public AnsiConsoleFacade(Profile profile, IExclusivityMode exclusivity...
    method Clear (line 28) | public void Clear(bool home)
    method Write (line 36) | public void Write(IRenderable renderable)
    method WriteAnsi (line 44) | public void WriteAnsi(Action<AnsiWriter> action)
    method GetBackend (line 52) | private IAnsiConsoleBackend GetBackend()

FILE: src/Spectre.Console/Internal/Backends/IAnsiConsoleBackend.cs
  type IAnsiConsoleBackend (line 6) | internal interface IAnsiConsoleBackend
    method Clear (line 10) | void Clear(bool home);
    method Write (line 11) | void Write(IRenderable renderable);
    method Write (line 12) | void Write(Action<AnsiWriter> action);

FILE: src/Spectre.Console/Internal/Backends/Legacy/LegacyConsoleBackend.cs
  class LegacyConsoleBackend (line 3) | internal sealed class LegacyConsoleBackend : IAnsiConsoleBackend
    method LegacyConsoleBackend (line 10) | public LegacyConsoleBackend(IAnsiConsole console)
    method Clear (line 18) | public void Clear(bool home)
    method Write (line 31) | public void Write(IRenderable renderable)
    method Write (line 49) | public void Write(Action<AnsiWriter> action)
    method SetStyle (line 54) | private void SetStyle(Style style)

FILE: src/Spectre.Console/Internal/Backends/Legacy/LegacyConsoleCursor.cs
  class LegacyConsoleCursor (line 3) | internal sealed class LegacyConsoleCursor : IAnsiConsoleCursor
    method Show (line 5) | public void Show(bool show)
    method Move (line 10) | public void Move(CursorDirection direction, int steps)
    method SetPosition (line 34) | public void SetPosition(int x, int y)

FILE: src/Spectre.Console/Internal/Cell.cs
  class Cell (line 3) | internal static class Cell
    method Cell (line 14) | static Cell()
    method GetCellLength (line 26) | public static int GetCellLength(string text) => GetCellLength(text.AsS...
    method GetCellLength (line 28) | public static int GetCellLength(ReadOnlySpan<char> text)
    method GetCellLength (line 39) | public static int GetCellLength(char rune)

FILE: src/Spectre.Console/Internal/Collections/ListWithCallback.cs
  class ListWithCallback (line 3) | internal sealed class ListWithCallback<T> : IList<T>, IReadOnlyList<T>
    method ListWithCallback (line 17) | public ListWithCallback(Action callback)
    method Add (line 23) | public void Add(T item)
    method Clear (line 29) | public void Clear()
    method Contains (line 35) | public bool Contains(T item)
    method CopyTo (line 40) | public void CopyTo(T[] array, int arrayIndex)
    method GetEnumerator (line 46) | public IEnumerator<T> GetEnumerator()
    method IndexOf (line 51) | public int IndexOf(T item)
    method Insert (line 56) | public void Insert(int index, T item)
    method Remove (line 62) | public bool Remove(T item)
    method RemoveAt (line 73) | public void RemoveAt(int index)
    method GetEnumerator (line 79) | IEnumerator IEnumerable.GetEnumerator()

FILE: src/Spectre.Console/Internal/ConsoleHelper.cs
  class ConsoleHelper (line 3) | internal static class ConsoleHelper
    method GetSafeWidth (line 5) | public static int GetSafeWidth(int defaultValue = Constants.DefaultTer...
    method GetSafeHeight (line 23) | public static int GetSafeHeight(int defaultValue = Constants.DefaultTe...

FILE: src/Spectre.Console/Internal/Constants.cs
  class Constants (line 3) | internal static class Constants

FILE: src/Spectre.Console/Internal/DecorationTable.cs
  class DecorationTable (line 3) | internal static class DecorationTable
    method DecorationTable (line 8) | static DecorationTable()
    method GetDecoration (line 44) | public static Decoration? GetDecoration(string name)
    method GetMarkupNames (line 50) | public static List<string> GetMarkupNames(Decoration decoration)

FILE: src/Spectre.Console/Internal/DefaultExclusivityMode.cs
  class DefaultExclusivityMode (line 3) | internal sealed class DefaultExclusivityMode : IExclusivityMode
    method DefaultExclusivityMode (line 7) | public DefaultExclusivityMode()
    method Run (line 12) | public T Run<T>(Func<T> func)
    method RunAsync (line 30) | public async Task<T> RunAsync<T>(Func<Task<T>> func)
    method CreateExclusivityException (line 48) | private static Exception CreateExclusivityException() => new InvalidOp...

FILE: src/Spectre.Console/Internal/DefaultInput.cs
  class DefaultInput (line 3) | internal sealed class DefaultInput : IAnsiConsoleInput
    method DefaultInput (line 7) | public DefaultInput(Profile profile)
    method IsKeyAvailable (line 12) | public bool IsKeyAvailable()
    method ReadKey (line 22) | public ConsoleKeyInfo? ReadKey(bool intercept)
    method ReadKeyAsync (line 32) | public async Task<ConsoleKeyInfo?> ReadKeyAsync(bool intercept, Cancel...

FILE: src/Spectre.Console/Internal/FileSize.cs
  type FileSize (line 3) | internal readonly struct FileSize
    method FileSize (line 19) | public FileSize(double bytes)
    method FileSize (line 25) | public FileSize(double bytes, FileSizeBase @base)
    method FileSize (line 32) | public FileSize(double bytes, FileSizeBase @base, bool showBits)
    method FileSize (line 41) | public FileSize(double bytes, FileSizePrefix prefix)
    method FileSize (line 47) | public FileSize(double bytes, FileSizePrefix prefix, FileSizeBase @bas...
    method Format (line 56) | public string Format(CultureInfo? culture = null)
    method ToString (line 74) | public override string ToString()
    method ToString (line 79) | public string ToString(bool suffix = true, CultureInfo? culture = null)
    method GetSuffix (line 89) | private string GetSuffix()
    method DetectPrefix (line 136) | private FileSizePrefix DetectPrefix(double bytes)

FILE: src/Spectre.Console/Internal/FileSizeBase.cs
  type FileSizeBase (line 6) | public enum FileSizeBase

FILE: src/Spectre.Console/Internal/FileSizePrefix.cs
  type FileSizePrefix (line 3) | internal enum FileSizePrefix

FILE: src/Spectre.Console/Internal/IRatioResolvable.cs
  type IRatioResolvable (line 6) | internal interface IRatioResolvable

FILE: src/Spectre.Console/Internal/Polyfill/CancellationToken.cs
  class CancellationTokenHelpers (line 4) | internal static class CancellationTokenHelpers
    method CancelAsync (line 6) | public static Task CancelAsync(this CancellationTokenSource cts)

FILE: src/Spectre.Console/Internal/Polyfill/EnumHelpers.cs
  class EnumUtils (line 3) | internal static class EnumUtils
    method GetValues (line 5) | public static T[] GetValues<T>()

FILE: src/Spectre.Console/Internal/Ratio.cs
  class Ratio (line 6) | internal static class Ratio
    method Resolve (line 8) | public static List<int> Resolve(int total, IEnumerable<IRatioResolvabl...
    method Reduce (line 90) | public static List<int> Reduce(int total, List<int> ratios, List<int> ...
    method Distribute (line 120) | public static List<int> Distribute(int total, IList<int> ratios, IList...

FILE: src/Spectre.Console/Internal/ResourceReader.cs
  class ResourceReader (line 3) | internal static class ResourceReader
    method ReadManifestData (line 5) | public static string ReadManifestData(string resourceName)

FILE: src/Spectre.Console/Internal/Text/Encoding/EncoderCapabilities.cs
  class EncoderCapabilities (line 3) | internal sealed class EncoderCapabilities : IReadOnlyCapabilities
    method EncoderCapabilities (line 15) | public EncoderCapabilities(ColorSystem colors)

FILE: src/Spectre.Console/Internal/Text/Encoding/HtmlEncoder.cs
  class HtmlEncoder (line 3) | internal sealed class HtmlEncoder : IAnsiConsoleEncoder
    method Encode (line 5) | public string Encode(IAnsiConsole console, IEnumerable<IRenderable> re...
    method BuildCss (line 61) | private static string BuildCss(Style style)

FILE: src/Spectre.Console/Internal/Text/Encoding/TextEncoder.cs
  class TextEncoder (line 3) | internal sealed class TextEncoder : IAnsiConsoleEncoder
    method Encode (line 5) | public string Encode(IAnsiConsole console, IEnumerable<IRenderable> re...

FILE: src/Spectre.Console/Internal/Text/StringBuffer.cs
  class StringBuffer (line 3) | internal sealed class StringBuffer : IDisposable
    method StringBuffer (line 11) | public StringBuffer(string text)
    method Dispose (line 21) | public void Dispose()
    method Expect (line 26) | public char Expect(char character)
    method Peek (line 37) | public char Peek()
    method Read (line 47) | public char Read()

FILE: src/Spectre.Console/Internal/Text/WhiteSpaceSegmentEnumerator.cs
  type WhiteSpaceSegmentEnumerator (line 3) | internal ref struct WhiteSpaceSegmentEnumerator
    method WhiteSpaceSegmentEnumerator (line 8) | public WhiteSpaceSegmentEnumerator(ReadOnlySpan<char> buffer)
    method GetEnumerator (line 15) | public WhiteSpaceSegmentEnumerator GetEnumerator() => this;
    method MoveNext (line 17) | public bool MoveNext()

FILE: src/Spectre.Console/Internal/TypeConverterHelper.cs
  class TypeConverterHelper (line 3) | internal static class TypeConverterHelper
    method ConvertToString (line 10) | public static string ConvertToString<T>(T input)
    method TryConvertFromString (line 21) | public static bool TryConvertFromString<T>(string input, [MaybeNull] o...
    method TryConvertFromStringWithCulture (line 35) | public static bool TryConvertFromStringWithCulture<T>(string input, Cu...
    method GetTypeConverter (line 57) | public static TypeConverter GetTypeConverter<T>()
    method TypeConverterHelper (line 103) | static TypeConverterHelper()
    method CreateEnumConverter (line 142) | [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2111", Justific...
    method GetIntrinsicConverter (line 148) | private static TypeConverter? GetIntrinsicConverter([DynamicallyAccess...

FILE: src/Spectre.Console/Justify.cs
  type Justify (line 6) | public enum Justify

FILE: src/Spectre.Console/Live/LiveDisplay.cs
  class LiveDisplay (line 6) | public sealed class LiveDisplay
    method LiveDisplay (line 33) | public LiveDisplay(IAnsiConsole console, IRenderable target)
    method Start (line 43) | public void Start(Action<LiveDisplayContext> action)
    method Start (line 60) | public T Start<T>(Func<LiveDisplayContext, T> func)
    method StartAsync (line 71) | public async Task StartAsync(Func<LiveDisplayContext, Task> func)
    method StartAsync (line 88) | public async Task<T> StartAsync<T>(Func<LiveDisplayContext, Task<T>> f...
  class LiveDisplayExtensions (line 120) | public static class LiveDisplayExtensions
    method AutoClear (line 129) | public static LiveDisplay AutoClear(this LiveDisplay live, bool enabled)
    method Overflow (line 144) | public static LiveDisplay Overflow(this LiveDisplay live, VerticalOver...
    method Cropping (line 159) | public static LiveDisplay Cropping(this LiveDisplay live, VerticalOver...

FILE: src/Spectre.Console/Live/LiveDisplayContext.cs
  class LiveDisplayContext (line 6) | public sealed class LiveDisplayContext
    method LiveDisplayContext (line 13) | internal LiveDisplayContext(IAnsiConsole console, IRenderable target)
    method UpdateTarget (line 25) | public void UpdateTarget(IRenderable? target)
    method Refresh (line 37) | public void Refresh()
    method SetOverflow (line 45) | internal void SetOverflow(VerticalOverflow overflow, VerticalOverflowC...

FILE: src/Spectre.Console/Live/LiveDisplayRenderer.cs
  class LiveDisplayRenderer (line 3) | internal sealed class LiveDisplayRenderer : IRenderHook
    method LiveDisplayRenderer (line 7) | public LiveDisplayRenderer(IAnsiConsole console, LiveDisplayContext co...
    method Started (line 13) | public void Started()
    method Completed (line 18) | public void Completed(bool autoclear)
    method Process (line 43) | public IEnumerable<IRenderable> Process(RenderOptions options, IEnumer...

FILE: src/Spectre.Console/Live/LiveRenderable.cs
  class LiveRenderable (line 3) | internal sealed class LiveRenderable : Renderable
    method LiveRenderable (line 18) | public LiveRenderable(IAnsiConsole console)
    method LiveRenderable (line 26) | public LiveRenderable(IAnsiConsole console, IRenderable renderable)
    method SetRenderable (line 32) | public void SetRenderable(IRenderable? renderable)
    method PositionCursor (line 40) | public IRenderable PositionCursor(RenderOptions options)
    method RestoreCursor (line 71) | public IRenderable RestoreCursor()
    method Render (line 95) | protected override IEnumerable<Segment> Render(RenderOptions options, ...

FILE: src/Spectre.Console/Live/Progress/Columns/DownloadedColumn.cs
  class DownloadedColumn (line 6) | public sealed class DownloadedColumn : ProgressColumn
    method Render (line 24) | public override IRenderable Render(RenderOptions options, ProgressTask...

FILE: src/Spectre.Console/Live/Progress/Columns/ElapsedTimeColumn.cs
  class ElapsedTimeColumn (line 6) | public sealed class ElapsedTimeColumn : ProgressColumn
    method Render (line 17) | public override IRenderable Render(RenderOptions options, ProgressTask...
    method GetColumnWidth (line 34) | public override int? GetColumnWidth(RenderOptions options)

FILE: src/Spectre.Console/Live/Progress/Columns/PercentageColumn.cs
  class PercentageColumn (line 6) | public sealed class PercentageColumn : ProgressColumn
    method Render (line 19) | public override IRenderable Render(RenderOptions options, ProgressTask...
    method GetColumnWidth (line 27) | public override int? GetColumnWidth(RenderOptions options)
  class PercentageColumnExtensions (line 36) | public static class PercentageColumnExtensions
    method Style (line 44) | public static PercentageColumn Style(this PercentageColumn column, Sty...
    method CompletedStyle (line 58) | public static PercentageColumn CompletedStyle(this PercentageColumn co...

FILE: src/Spectre.Console/Live/Progress/Columns/ProgressBarColumn.cs
  class ProgressBarColumn (line 6) | public sealed class ProgressBarColumn : ProgressColumn
    method Render (line 34) | public override IRenderable Render(RenderOptions options, ProgressTask...
  class ProgressBarColumnExtensions (line 53) | public static class ProgressBarColumnExtensions
    method CompletedStyle (line 61) | public static ProgressBarColumn CompletedStyle(this ProgressBarColumn ...
    method FinishedStyle (line 75) | public static ProgressBarColumn FinishedStyle(this ProgressBarColumn c...
    method RemainingStyle (line 89) | public static ProgressBarColumn RemainingStyle(this ProgressBarColumn ...

FILE: src/Spectre.Console/Live/Progress/Columns/RemainingTimeColumn.cs
  class RemainingTimeColumn (line 7) | public sealed class RemainingTimeColumn : ProgressColumn
    method Render (line 18) | public override IRenderable Render(RenderOptions options, ProgressTask...
    method GetColumnWidth (line 35) | public override int? GetColumnWidth(RenderOptions options)
  class RemainingTimeColumnExtensions (line 44) | public static class RemainingTimeColumnExtensions
    method Style (line 52) | public static RemainingTimeColumn Style(this RemainingTimeColumn colum...

FILE: src/Spectre.Console/Live/Progress/Columns/SpinnerColumn.cs
  class SpinnerColumn (line 6) | public sealed class SpinnerColumn : ProgressColumn
    method SpinnerColumn (line 82) | public SpinnerColumn()
    method SpinnerColumn (line 91) | public SpinnerColumn(Spinner spinner)
    method Render (line 98) | public override IRenderable Render(RenderOptions options, ProgressTask...
    method GetColumnWidth (line 126) | public override int? GetColumnWidth(RenderOptions options)
    method GetMaxWidth (line 131) | private int GetMaxWidth(RenderOptions options)
  class SpinnerColumnExtensions (line 155) | public static class SpinnerColumnExtensions
    method Style (line 163) | public static SpinnerColumn Style(this SpinnerColumn column, Style? st...
    method CompletedText (line 178) | public static SpinnerColumn CompletedText(this SpinnerColumn column, s...
    method CompletedStyle (line 192) | public static SpinnerColumn CompletedStyle(this SpinnerColumn column, ...

FILE: src/Spectre.Console/Live/Progress/Columns/TaskDescriptionColumn.cs
  class TaskDescriptionColumn (line 6) | public sealed class TaskDescriptionColumn : ProgressColumn
    method Render (line 17) | public override IRenderable Render(RenderOptions options, ProgressTask...

FILE: src/Spectre.Console/Live/Progress/Columns/TransferSpeedColumn.cs
  class TransferSpeedColumn (line 6) | public sealed class TransferSpeedColumn : ProgressColumn
    method Render (line 24) | public override IRenderable Render(RenderOptions options, ProgressTask...

FILE: src/Spectre.Console/Live/Progress/Progress.cs
  class Progress (line 6) | public sealed class Progress
    method Progress (line 51) | public Progress(IAnsiConsole console, TimeProvider? timeProvider = null)
    method Start (line 69) | public void Start(Action<ProgressContext> action)
    method Start (line 86) | public T Start<T>(Func<ProgressContext, T> func)
    method StartAsync (line 97) | public async Task StartAsync(Func<ProgressContext, Task> action)
    method StartAsync (line 114) | public async Task<T> StartAsync<T>(Func<ProgressContext, Task<T>> action)
    method CreateRenderer (line 155) | private ProgressRenderer CreateRenderer()
  class ProgressExtensions (line 175) | public static class ProgressExtensions
    method Columns (line 183) | public static Progress Columns(this Progress progress, params Progress...
    method UseRenderHook (line 206) | public static Progress UseRenderHook(this Progress progress, Func<IRen...
    method AutoRefresh (line 220) | public static Progress AutoRefresh(this Progress progress, bool enabled)
    method AutoClear (line 237) | public static Progress AutoClear(this Progress progress, bool enabled)
    method HideCompleted (line 254) | public static Progress HideCompleted(this Progress progress, bool enab...

FILE: src/Spectre.Console/Live/Progress/ProgressColumn.cs
  class ProgressColumn (line 6) | public abstract class ProgressColumn
    method Render (line 20) | public abstract IRenderable Render(RenderOptions options, ProgressTask...
    method GetColumnWidth (line 27) | public virtual int? GetColumnWidth(RenderOptions options)

FILE: src/Spectre.Console/Live/Progress/ProgressContext.cs
  class ProgressContext (line 6) | public sealed class ProgressContext
    method ProgressContext (line 29) | internal ProgressContext(IAnsiConsole console, ProgressRenderer render...
    method AddTask (line 45) | public ProgressTask AddTask(string description, bool autoStart = true,...
    method AddTaskAt (line 63) | public ProgressTask AddTaskAt(string description, int index, bool auto...
    method AddTaskBefore (line 81) | public ProgressTask AddTaskBefore(string description, ProgressTask ref...
    method AddTaskAfter (line 100) | public ProgressTask AddTaskAfter(string description, ProgressTask refe...
    method AddTask (line 117) | public ProgressTask AddTask(string description, ProgressTaskSettings s...
    method AddTaskAt (line 132) | public ProgressTask AddTaskAt(string description, ProgressTaskSettings...
    method AddTaskBefore (line 147) | public ProgressTask AddTaskBefore(string description, ProgressTaskSett...
    method AddTaskAfter (line 164) | public ProgressTask AddTaskAfter(string description, ProgressTaskSetti...
    method RemoveTask (line 179) | public bool RemoveTask(ProgressTask task)
    method Refresh (line 190) | public void Refresh()
    method AddTaskAtInternal (line 196) | private ProgressTask AddTaskAtInternal(string description, ProgressTas...
    method GetTasks (line 207) | internal IReadOnlyList<ProgressTask> GetTasks()

FILE: src/Spectre.Console/Live/Progress/ProgressRefreshThread.cs
  class ProgressRefreshThread (line 3) | internal sealed class ProgressRefreshThread : IDisposable
    method ProgressRefreshThread (line 11) | public ProgressRefreshThread(ProgressContext context, TimeSpan refresh...
    method Dispose (line 23) | public void Dispose()
    method Run (line 37) | private void Run()

FILE: src/Spectre.Console/Live/Progress/ProgressRenderer.cs
  class ProgressRenderer (line 3) | internal abstract class ProgressRenderer : IRenderHook
    method Started (line 7) | public virtual void Started()
    method Completed (line 11) | public virtual void Completed(bool clear)
    method Update (line 15) | public abstract void Update(ProgressContext context);
    method Process (line 16) | public abstract IEnumerable<IRenderable> Process(RenderOptions options...

FILE: src/Spectre.Console/Live/Progress/ProgressSample.cs
  type ProgressSample (line 3) | internal readonly struct ProgressSample
    method ProgressSample (line 8) | public ProgressSample(DateTime timestamp, double value)

FILE: src/Spectre.Console/Live/Progress/ProgressTask.cs
  class ProgressTask (line 6) | public sealed class ProgressTask : IProgress<double>
    method ProgressTask (line 130) | public ProgressTask(int id, string description, double maxValue, bool ...
    method StartTask (line 153) | public void StartTask()
    method StopTask (line 170) | public void StopTask()
    method Increment (line 184) | public void Increment(double value)
    method Update (line 201) | private void Update(
    method GetPercentage (line 260) | private double GetPercentage()
    method GetSpeed (line 272) | private double? GetSpeed()
    method GetElapsedTime (line 318) | private TimeSpan? GetElapsedTime()
    method GetRemainingTime (line 336) | private TimeSpan? GetRemainingTime()
    method Report (line 365) | void IProgress<double>.Report(double value)
  class ProgressTaskExtensions (line 374) | public static class ProgressTaskExtensions
    method Description (line 382) | public static ProgressTask Description(this ProgressTask task, string ...
    method MaxValue (line 396) | public static ProgressTask MaxValue(this ProgressTask task, double value)
    method Value (line 410) | public static ProgressTask Value(this ProgressTask task, double value)
    method IsIndeterminate (line 424) | public static ProgressTask IsIndeterminate(this ProgressTask task, boo...
    method HideWhenCompleted (line 438) | public static ProgressTask HideWhenCompleted(this ProgressTask task, b...
    method Tag (line 452) | public static ProgressTask Tag(this ProgressTask task, object? tag)

FILE: src/Spectre.Console/Live/Progress/ProgressTaskSettings.cs
  class ProgressTaskSettings (line 6) | public sealed class ProgressTaskSettings

FILE: src/Spectre.Console/Live/Progress/ProgressTaskState.cs
  class ProgressTaskState (line 6) | public sealed class ProgressTaskState
    method ProgressTaskState (line 14) | public ProgressTaskState()
    method Get (line 26) | public T Get<T>(string key)
    method Update (line 52) | public T Update<T>(string key, Func<T, T> func)

FILE: src/Spectre.Console/Live/Progress/Renderers/DefaultProgressRenderer.cs
  class DefaultProgressRenderer (line 3) | internal sealed class DefaultProgressRenderer : ProgressRenderer
    method DefaultProgressRenderer (line 16) | public DefaultProgressRenderer(IAnsiConsole console, List<ProgressColu...
    method Started (line 30) | public override void Started()
    method Completed (line 35) | public override void Completed(bool clear)
    method Update (line 60) | public override void Update(ProgressContext context)
    method Process (line 117) | public override IEnumerable<IRenderable> Process(RenderOptions options...

FILE: src/Spectre.Console/Live/Progress/Renderers/FallbackProgressRenderer.cs
  class FallbackProgressRenderer (line 3) | internal sealed class FallbackProgressRenderer : ProgressRenderer
    method FallbackProgressRenderer (line 16) | public FallbackProgressRenderer(TimeProvider timeProvider)
    method Update (line 23) | public override void Update(ProgressContext context)
    method Process (line 63) | public override IEnumerable<IRenderable> Process(RenderOptions options...
    method TryAdvance (line 81) | private bool TryAdvance(int task, double percentage)
    method GetNextMilestone (line 102) | private static double? GetNextMilestone(double percentage)
    method BuildTaskGrid (line 107) | private static IRenderable? BuildTaskGrid(List<(string Name, double Pe...

FILE: src/Spectre.Console/Live/Progress/Renderers/FallbackStatusRenderer.cs
  class FallbackStatusRenderer (line 3) | internal sealed class FallbackStatusRenderer : ProgressRenderer
    method FallbackStatusRenderer (line 11) | public FallbackStatusRenderer()
    method Update (line 16) | public override void Update(ProgressContext context)
    method Process (line 37) | public override IEnumerable<IRenderable> Process(RenderOptions options...

FILE: src/Spectre.Console/Live/Progress/Spinner.cs
  class Spinner (line 6) | public abstract partial class Spinner

FILE: src/Spectre.Console/Live/Status/Status.cs
  class Status (line 6) | public sealed class Status
    method Status (line 30) | public Status(IAnsiConsole console)
    method Start (line 40) | public void Start(string status, Action<StatusContext> action)
    method Start (line 58) | public T Start<T>(string status, Func<StatusContext, T> func)
    method StartAsync (line 70) | public async Task StartAsync(string status, Func<StatusContext, Task> ...
    method StartAsync (line 88) | public async Task<T> StartAsync<T>(string status, Func<StatusContext, ...
  class StatusExtensions (line 122) | public static class StatusExtensions
    method AutoRefresh (line 131) | public static Status AutoRefresh(this Status status, bool enabled)
    method Spinner (line 145) | public static Status Spinner(this Status status, Spinner spinner)
    method SpinnerStyle (line 159) | public static Status SpinnerStyle(this Status status, Style? style)

FILE: src/Spectre.Console/Live/Status/StatusContext.cs
  class StatusContext (line 6) | public sealed class StatusContext
    method StatusContext (line 39) | internal StatusContext(ProgressContext context, ProgressTask task, Spi...
    method Refresh (line 49) | public void Refresh()
    method SetStatus (line 54) | private void SetStatus(string status)
    method SetSpinner (line 61) | private void SetSpinner(Spinner spinner)
  class StatusContextExtensions (line 72) | public static class StatusContextExtensions
    method Status (line 80) | public static StatusContext Status(this StatusContext context, string ...
    method Spinner (line 94) | public static StatusContext Spinner(this StatusContext context, Spinne...
    method SpinnerStyle (line 108) | public static StatusContext SpinnerStyle(this StatusContext context, S...

FILE: src/Spectre.Console/Overflow.cs
  type Overflow (line 6) | public enum Overflow

FILE: src/Spectre.Console/Padding.cs
  type Padding (line 6) | public readonly struct Padding : IEquatable<Padding>
    method Padding (line 32) | public Padding(int size)
    method Padding (line 42) | public Padding(int horizontal, int vertical)
    method Padding (line 54) | public Padding(int left, int top, int right, int bottom)
    method Equals (line 63) | public override bool Equals(object? obj)
    method GetHashCode (line 69) | public override int GetHashCode()
    method Equals (line 83) | public bool Equals(Padding other)
    method GetWidth (line 117) | public int GetWidth()
    method GetHeight (line 126) | public int GetHeight()
  class PaddingExtensions (line 135) | public static class PaddingExtensions
    method GetLeftSafe (line 142) | public static int GetLeftSafe(this Padding? padding)
    method GetRightSafe (line 152) | public static int GetRightSafe(this Padding? padding)
    method GetTopSafe (line 162) | public static int GetTopSafe(this Padding? padding)
    method GetBottomSafe (line 172) | public static int GetBottomSafe(this Padding? padding)

FILE: src/Spectre.Console/Profile.cs
  class Profile (line 6) | public sealed class Profile
    method Profile (line 122) | public Profile(IAnsiConsoleOutput @out, Capabilities capabilities, Enc...
    method Supports (line 136) | public bool Supports(ColorSystem colorSystem)
    method AddEnricher (line 141) | internal void AddEnricher(string name)

FILE: src/Spectre.Console/Prompts/ConfirmationPrompt.cs
  class ConfirmationPrompt (line 6) | public sealed class ConfirmationPrompt : IPrompt<bool>
    method ConfirmationPrompt (line 65) | public ConfirmationPrompt(string prompt)
    method Show (line 71) | public bool Show(IAnsiConsole console)
    method ShowAsync (line 77) | public async Task<bool> ShowAsync(IAnsiConsole console, CancellationTo...
  class ConfirmationPromptExtensions (line 101) | public static class ConfirmationPromptExtensions
    method ShowChoices (line 109) | public s
Condensed preview — 797 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,400K chars).
[
  {
    "path": ".editorconfig",
    "chars": 405,
    "preview": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = LF\nindent_style = space\nindent_size = 4\ninsert_final_newline = false\ntrim"
  },
  {
    "path": ".git-blame-ignore-revs",
    "chars": 143,
    "preview": "# Use file scoped namespace declarations\n7b2da0a4f63bf3ceab99d2c88535e74155f2b99c\n\n# fix line-endings\ne2ad4b1ea5555e701c"
  },
  {
    "path": ".gitattributes",
    "chars": 65,
    "preview": "* text=auto\n\n*.cs       text    eol=lf\n*.md       text    eol=lf\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 665,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: [\"needs triage\"]\ntype: [\"bug\"]\nassignee"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 28,
    "preview": "blank_issues_enabled: false\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 690,
    "preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: [\"needs triage\"]\ntype: [\"feature\"]\na"
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 791,
    "preview": "<!--\nDo NOT open a PR without discussing the changes on an open issue, first.\n\nAdd the issue number here. e.g. #123\n-->\n"
  },
  {
    "path": ".github/renovate.json",
    "chars": 357,
    "preview": "{\n  \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\",\n  \"extends\": [\n    \"config:base\"\n  ],\n  \"dependencyD"
  },
  {
    "path": ".github/workflows/ci.yaml",
    "chars": 878,
    "preview": "# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json\nname: Pull Request\non: pull_request\n\ne"
  },
  {
    "path": ".github/workflows/publish.yaml",
    "chars": 1200,
    "preview": "# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json\nname: Publish\n\non:\n  push:\n    tags:\n "
  },
  {
    "path": ".github/workflows/top-issues-dashboard.yml",
    "chars": 608,
    "preview": "name: Top issues action.\non:\n  schedule:\n    - cron: '0 0 */1 * *'\n\njobs:\n  ShowAndLabelTopIssues:\n    name: Display and"
  },
  {
    "path": ".gitignore",
    "chars": 1217,
    "preview": "# Misc folders\n[Bb]in/\n[Oo]bj/\n[Tt]emp/\n[Pp]ackages/\n/.artifacts/\n/[Tt]ools/\n.idea\n.DS_Store\n\n# Sign tool\n.sign\n\n# .NET "
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 5492,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 8621,
    "preview": "# Contribution Guidelines\n\n* [Prerequisites](#prerequisites)\n* [Definition of trivial contributions](#definition-of-triv"
  },
  {
    "path": "LICENSE.md",
    "chars": 1099,
    "preview": "MIT License\n\nCopyright (c) 2020 Patrik Svensson, Phil Scott, Nils Andresen\n\nPermission is hereby granted, free of charge"
  },
  {
    "path": "NuGet.Config",
    "chars": 202,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n  <packageSources>\n    <add key=\"nuget.org\" value=\"https://api.nu"
  },
  {
    "path": "README.fa.md",
    "chars": 1863,
    "preview": "# `Spectre.Console`\n\n_[![Spectre.Console NuGet Version](https://img.shields.io/nuget/v/spectre.console.svg?style=flat&la"
  },
  {
    "path": "README.jp.md",
    "chars": 9845,
    "preview": "# `Spectre.Console`\n\n_[![Spectre.Console NuGet Version](https://img.shields.io/nuget/v/spectre.console.svg?style=flat&la"
  },
  {
    "path": "README.md",
    "chars": 2862,
    "preview": "# `Spectre.Console`\n\n_[![Spectre.Console NuGet Version](https://img.shields.io/nuget/v/spectre.console.svg?style=flat&la"
  },
  {
    "path": "README.pt-BR.md",
    "chars": 1832,
    "preview": "# `Spectre.Console`\n\n_[![Spectre.Console NuGet Versão](https://img.shields.io/nuget/v/spectre.console.svg?style=flat&lab"
  },
  {
    "path": "README.zh.md",
    "chars": 1126,
    "preview": "# `Spectre.Console`\n\n_[![Spectre.Console NuGet Version](https://img.shields.io/nuget/v/spectre.console.svg?style=flat&la"
  },
  {
    "path": "build.cs",
    "chars": 4627,
    "preview": "#:sdk Cake.Sdk@6.0.0\n\nvar solution = \"./src/Spectre.Console.slnx\";\n\n////////////////////////////////////////////////////"
  },
  {
    "path": "dotnet-tools.json",
    "chars": 313,
    "preview": "{\n  \"version\": 1,\n  \"isRoot\": true,\n  \"tools\": {\n    \"verify.tool\": {\n      \"version\": \"0.7.0\",\n      \"commands\": [\n    "
  },
  {
    "path": "global.json",
    "chars": 139,
    "preview": "{\r\n  \"$schema\": \"http://json.schemastore.org/global\",\r\n  \"sdk\": {\r\n    \"version\": \"10.0.201\",\r\n    \"rollForward\": \"lates"
  },
  {
    "path": "resources/nuget/Spectre.Console.Ansi.md",
    "chars": 24,
    "preview": "# `Spectre.Console.Ansi`"
  },
  {
    "path": "resources/nuget/Spectre.Console.ImageSharp.md",
    "chars": 303,
    "preview": "# `Spectre.Console.ImageSharp`\n\nA .NET library that extends [Spectre.Console](https://github.com/spectreconsole/spectre."
  },
  {
    "path": "resources/nuget/Spectre.Console.Json.md",
    "chars": 267,
    "preview": "# `Spectre.Console.Json`\n\nA .NET library that extends [Spectre.Console](https://github.com/spectreconsole/spectre.consol"
  },
  {
    "path": "resources/nuget/Spectre.Console.Testing.md",
    "chars": 280,
    "preview": "# `Spectre.Console.Testing`\n\nA .NET library that makes it easier to write unit tests for [Spectre.Console](https://githu"
  },
  {
    "path": "resources/nuget/Spectre.Console.md",
    "chars": 325,
    "preview": "# `Spectre.Console`\n\nA .NET library that makes it easier to create beautiful, cross platform, console applications. It i"
  },
  {
    "path": "resources/scripts/.gitignore",
    "chars": 14,
    "preview": "Generated\nTemp"
  },
  {
    "path": "resources/scripts/Generate-Colors.ps1",
    "chars": 1029,
    "preview": "#!/usr/local/bin/pwsh\n\n##########################################################\n# Script that generates known colors a"
  },
  {
    "path": "resources/scripts/Generate-Emoji.ps1",
    "chars": 786,
    "preview": "#!/usr/local/bin/pwsh\n\n##########################################################\n# Script that generates the emoji look"
  },
  {
    "path": "resources/scripts/Generate-Spinners.ps1",
    "chars": 787,
    "preview": "#!/usr/local/bin/pwsh\n\n##########################################################\n# Script that generates progress spinn"
  },
  {
    "path": "resources/signclient.filter",
    "chars": 19,
    "preview": "**/Spectre.Console*"
  },
  {
    "path": "src/.editorconfig",
    "chars": 11147,
    "preview": "[*.cs]\n# Prefer file scoped namespace declarations\ncsharp_style_namespace_declarations = file_scoped:warning\n\n# Sort usi"
  },
  {
    "path": "src/Benchmarks/BenchmarkDotNet.Artifacts/results/Benchmarks.AnsiBenchmarks-report-github.md",
    "chars": 979,
    "preview": "```\n\nBenchmarkDotNet v0.15.8, macOS Tahoe 26.2 (25C56) [Darwin 25.2.0]\nApple M3 Pro, 1 CPU, 11 logical and 11 physical c"
  },
  {
    "path": "src/Benchmarks/BenchmarkDotNet.Artifacts/results/Benchmarks.RenderBenchmarks-report-github.md",
    "chars": 929,
    "preview": "```\n\nBenchmarkDotNet v0.15.8, macOS Tahoe 26.2 (25C56) [Darwin 25.2.0]\nApple M3 Pro, 1 CPU, 11 logical and 11 physical c"
  },
  {
    "path": "src/Benchmarks/Benchmarks.csproj",
    "chars": 589,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFrameworks>net10.0;net"
  },
  {
    "path": "src/Benchmarks/EmojiBenchmarks.cs",
    "chars": 541,
    "preview": "using BenchmarkDotNet.Attributes;\nusing BenchmarkDotNet.Jobs;\nusing Spectre.Console;\n\nnamespace Benchmarks;\n\n[MemoryDiag"
  },
  {
    "path": "src/Benchmarks/MarkupBenchmarks.cs",
    "chars": 512,
    "preview": "using BenchmarkDotNet.Attributes;\nusing BenchmarkDotNet.Jobs;\nusing Spectre.Console;\n\nnamespace Benchmarks;\n\n[MemoryDiag"
  },
  {
    "path": "src/Benchmarks/ParagraphBenchmarks.cs",
    "chars": 606,
    "preview": "using BenchmarkDotNet.Attributes;\nusing BenchmarkDotNet.Jobs;\nusing Spectre.Console;\n\nnamespace Benchmarks;\n\n[MemoryDiag"
  },
  {
    "path": "src/Benchmarks/Program.cs",
    "chars": 1967,
    "preview": "using BenchmarkDotNet.Attributes;\nusing BenchmarkDotNet.Jobs;\nusing BenchmarkDotNet.Running;\nusing Spectre.Console;\nusi"
  },
  {
    "path": "src/Directory.Build.props",
    "chars": 3335,
    "preview": "<Project>\n  <PropertyGroup Label=\"Settings\">\n    <Deterministic>true</Deterministic>\n    <LangVersion>14</LangVersion>\n"
  },
  {
    "path": "src/Directory.Packages.props",
    "chars": 1831,
    "preview": "<Project>\n  <PropertyGroup>\n    <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>\n  </PropertyGroup>"
  },
  {
    "path": "src/Extensions/Spectre.Console.ImageSharp/CanvasImage.cs",
    "chars": 4160,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing SixLabors.ImageSharp;\nusing SixLabors.ImageSharp."
  },
  {
    "path": "src/Extensions/Spectre.Console.ImageSharp/CanvasImageExtensions.cs",
    "chars": 3907,
    "preview": "using System;\nusing SixLabors.ImageSharp.Processing;\n\nnamespace Spectre.Console;\n\n/// <summary>\n/// Contains extension m"
  },
  {
    "path": "src/Extensions/Spectre.Console.ImageSharp/Spectre.Console.ImageSharp.csproj",
    "chars": 708,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n  <PropertyGroup>\n    <TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>\n    "
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/IJsonParser.cs",
    "chars": 378,
    "preview": "namespace Spectre.Console.Json;\n\n/// <summary>\n/// Represents a JSON parser.\n/// </summary>\npublic interface IJsonParser"
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/JsonBuilder.cs",
    "chars": 3185,
    "preview": "namespace Spectre.Console.Json;\n\ninternal sealed class JsonBuilderContext\n{\n    public Paragraph Paragraph { get; }\n    "
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/JsonParser.cs",
    "chars": 3715,
    "preview": "namespace Spectre.Console.Json;\n\ninternal sealed class JsonParser : IJsonParser\n{\n    public static JsonParser Shared { "
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/JsonText.cs",
    "chars": 12134,
    "preview": "namespace Spectre.Console.Json;\n\n/// <summary>\n/// A renderable piece of JSON text.\n/// </summary>\npublic sealed class J"
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/JsonTextStyles.cs",
    "chars": 468,
    "preview": "namespace Spectre.Console.Json;\n\ninternal sealed class JsonTextStyles\n{\n    public Style? BracesStyle { get; set; }\n    "
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/JsonToken.cs",
    "chars": 307,
    "preview": "namespace Spectre.Console.Json;\n\ninternal sealed class JsonToken\n{\n    public JsonTokenType Type { get; }\n    public str"
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/JsonTokenReader.cs",
    "chars": 1076,
    "preview": "namespace Spectre.Console.Json;\n\ninternal sealed class JsonTokenReader\n{\n    private readonly List<JsonToken> _reader;\n "
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/JsonTokenType.cs",
    "chars": 199,
    "preview": "namespace Spectre.Console.Json;\n\ninternal enum JsonTokenType\n{\n    LeftBrace,\n    RightBrace,\n    LeftBracket,\n    Right"
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/JsonTokenizer.cs",
    "chars": 5608,
    "preview": "namespace Spectre.Console.Json;\n\ninternal static class JsonTokenizer\n{\n    private static readonly Dictionary<char, Json"
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/Properties/Usings.cs",
    "chars": 107,
    "preview": "global using System.Text;\nglobal using Spectre.Console.Json.Syntax;\nglobal using Spectre.Console.Rendering;"
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/Spectre.Console.Json.csproj",
    "chars": 1202,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n  <PropertyGroup>\n    <TargetFrameworks>net10.0;net9.0;net8.0;netstandard2.0</TargetF"
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/Syntax/JsonArray.cs",
    "chars": 583,
    "preview": "namespace Spectre.Console.Json.Syntax;\n\n/// <summary>\n/// Represents an array in the JSON abstract syntax tree.\n/// </su"
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/Syntax/JsonBoolean.cs",
    "chars": 653,
    "preview": "namespace Spectre.Console.Json.Syntax;\n\n/// <summary>\n/// Represents a boolean literal in the JSON abstract syntax tree."
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/Syntax/JsonMember.cs",
    "chars": 827,
    "preview": "namespace Spectre.Console.Json.Syntax;\n\n/// <summary>\n/// Represents a member in the JSON abstract syntax tree.\n/// </su"
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/Syntax/JsonNull.cs",
    "chars": 638,
    "preview": "namespace Spectre.Console.Json.Syntax;\n\n/// <summary>\n/// Represents a null literal in the JSON abstract syntax tree.\n//"
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/Syntax/JsonNumber.cs",
    "chars": 333,
    "preview": "namespace Spectre.Console.Json.Syntax;\n\ninternal sealed class JsonNumber : JsonSyntax\n{\n    public string Lexeme { get; "
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/Syntax/JsonObject.cs",
    "chars": 597,
    "preview": "namespace Spectre.Console.Json.Syntax;\n\n/// <summary>\n/// Represents an object in the JSON abstract syntax tree.\n/// </s"
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/Syntax/JsonString.cs",
    "chars": 648,
    "preview": "namespace Spectre.Console.Json.Syntax;\n\n/// <summary>\n/// Represents a string literal in the JSON abstract syntax tree.\n"
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/Syntax/JsonSyntax.cs",
    "chars": 247,
    "preview": "namespace Spectre.Console.Json.Syntax;\n\n/// <summary>\n/// Represents a syntax node in the JSON abstract syntax tree.\n///"
  },
  {
    "path": "src/Extensions/Spectre.Console.Json/Syntax/JsonSyntaxVisitor.cs",
    "chars": 560,
    "preview": "namespace Spectre.Console.Json.Syntax;\n\ninternal abstract class JsonSyntaxVisitor<T>\n{\n    public abstract void VisitObj"
  },
  {
    "path": "src/Spectre.Console/AnsiConsole.Exceptions.cs",
    "chars": 1047,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// A console capable of writing ANSI escape sequences.\n/// </summary>\npublic "
  },
  {
    "path": "src/Spectre.Console/AnsiConsole.Live.cs",
    "chars": 490,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// A console capable of writing ANSI escape sequences.\n/// </summary>\npublic "
  },
  {
    "path": "src/Spectre.Console/AnsiConsole.Markup.cs",
    "chars": 5279,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// A console capable of writing ANSI escape sequences.\n/// </summary>\npublic "
  },
  {
    "path": "src/Spectre.Console/AnsiConsole.Progress.cs",
    "chars": 625,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// A console capable of writing ANSI escape sequences.\n/// </summary>\npublic "
  },
  {
    "path": "src/Spectre.Console/AnsiConsole.Prompt.cs",
    "chars": 4499,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// A console capable of writing ANSI escape sequences.\n/// </summary>\npublic "
  },
  {
    "path": "src/Spectre.Console/AnsiConsole.Recording.cs",
    "chars": 1734,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// A console capable of writing ANSI escape sequences.\n/// </summary>\npublic "
  },
  {
    "path": "src/Spectre.Console/AnsiConsole.Screen.cs",
    "chars": 471,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// A console capable of writing ANSI escape sequences.\n/// </summary>\npublic "
  },
  {
    "path": "src/Spectre.Console/AnsiConsole.State.cs",
    "chars": 1530,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// A console capable of writing ANSI escape sequences.\n/// </summary>\npublic "
  },
  {
    "path": "src/Spectre.Console/AnsiConsole.Write.cs",
    "chars": 9243,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// A console capable of writing ANSI escape sequences.\n/// </summary>\npublic "
  },
  {
    "path": "src/Spectre.Console/AnsiConsole.WriteLine.cs",
    "chars": 10357,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// A console capable of writing ANSI escape sequences.\n/// </summary>\npublic "
  },
  {
    "path": "src/Spectre.Console/AnsiConsole.cs",
    "chars": 1956,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// A console capable of writing ANSI escape sequences.\n/// </summary>\npublic "
  },
  {
    "path": "src/Spectre.Console/AnsiConsoleFactory.cs",
    "chars": 1005,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Factory for creating an ANSI console.\n/// </summary>\ninternal sealed class"
  },
  {
    "path": "src/Spectre.Console/AnsiConsoleOutput.cs",
    "chars": 1274,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents console output.\n/// </summary>\npublic sealed class AnsiConsoleO"
  },
  {
    "path": "src/Spectre.Console/AnsiConsoleSettings.cs",
    "chars": 1567,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Settings used when building a <see cref=\"IAnsiConsole\"/>.\n/// </summary>\np"
  },
  {
    "path": "src/Spectre.Console/BoxBorder.Known.cs",
    "chars": 1014,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents a border.\n/// </summary>\npublic abstract partial class BoxBorde"
  },
  {
    "path": "src/Spectre.Console/BoxBorder.cs",
    "chars": 1339,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents a border.\n/// </summary>\npublic abstract partial class BoxBorde"
  },
  {
    "path": "src/Spectre.Console/Capabilities.cs",
    "chars": 2348,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents terminal capabilities.\n/// </summary>\npublic sealed class Capab"
  },
  {
    "path": "src/Spectre.Console/CircularBuffer.cs",
    "chars": 11334,
    "preview": "// Licensed to the .NET Foundation under one or more agreements.\n// The .NET Foundation licenses this file to you under "
  },
  {
    "path": "src/Spectre.Console/CursorDirection.cs",
    "chars": 418,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents cursor direction.\n/// </summary>\npublic enum CursorDirection\n{\n"
  },
  {
    "path": "src/Spectre.Console/Data/emoji.json",
    "chars": 1202865,
    "preview": "[\n  {\n    \"label\": \"regional indicator A\",\n    \"hexcode\": \"1F1E6\",\n    \"emoji\": \"🇦\",\n    \"text\": \"\",\n    \"type\": 1,\n    "
  },
  {
    "path": "src/Spectre.Console/Data/spinners_default.json",
    "chars": 344,
    "preview": "{\n  \"Default\": {\n    \"interval\": 100,\n    \"unicode\": true,\n    \"frames\": [\n      \"⣷\",\n      \"⣯\",\n      \"⣟\",\n      \"⡿\",\n "
  },
  {
    "path": "src/Spectre.Console/Data/spinners_sindresorhus.json",
    "chars": 25426,
    "preview": "{\n  \"dots\": {\n    \"interval\": 80,\n    \"unicode\": true,\n    \"frames\": [\n      \"⠋\",\n      \"⠙\",\n      \"⠹\",\n      \"⠸\",\n     "
  },
  {
    "path": "src/Spectre.Console/Emoji.cs",
    "chars": 2896,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Utility for working with emojis.\n/// </summary>\npublic static partial clas"
  },
  {
    "path": "src/Spectre.Console/Enrichment/CI/AppVeyorEnricher.cs",
    "chars": 389,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal sealed class AppVeyorEnricher : IProfileEnricher\n{\n    public string Nam"
  },
  {
    "path": "src/Spectre.Console/Enrichment/CI/AzurePipelinesEnricher.cs",
    "chars": 566,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal sealed class AzurePipelinesEnricher : IProfileEnricher\n{\n    public stri"
  },
  {
    "path": "src/Spectre.Console/Enrichment/CI/BambooEnricher.cs",
    "chars": 395,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal sealed class BambooEnricher : IProfileEnricher\n{\n    public string Name "
  },
  {
    "path": "src/Spectre.Console/Enrichment/CI/BitbucketEnricher.cs",
    "chars": 542,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal sealed class BitbucketEnricher : IProfileEnricher\n{\n    public string Na"
  },
  {
    "path": "src/Spectre.Console/Enrichment/CI/BitriseEnricher.cs",
    "chars": 396,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal sealed class BitriseEnricher : IProfileEnricher\n{\n    public string Name"
  },
  {
    "path": "src/Spectre.Console/Enrichment/CI/ContinuaEnricher.cs",
    "chars": 401,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal sealed class ContinuaEnricher : IProfileEnricher\n{\n    public string Nam"
  },
  {
    "path": "src/Spectre.Console/Enrichment/CI/GitHubEnricher.cs",
    "chars": 619,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal sealed class GitHubEnricher : IProfileEnricher\n{\n    public string Name "
  },
  {
    "path": "src/Spectre.Console/Enrichment/CI/GitLabEnricher.cs",
    "chars": 527,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal sealed class GitLabEnricher : IProfileEnricher\n{\n    public string Name "
  },
  {
    "path": "src/Spectre.Console/Enrichment/CI/GoCDEnricher.cs",
    "chars": 386,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal sealed class GoCDEnricher : IProfileEnricher\n{\n    public string Name =>"
  },
  {
    "path": "src/Spectre.Console/Enrichment/CI/JenkinsEnricher.cs",
    "chars": 390,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal sealed class JenkinsEnricher : IProfileEnricher\n{\n    public string Name"
  },
  {
    "path": "src/Spectre.Console/Enrichment/CI/MyGetEnricher.cs",
    "chars": 529,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal sealed class MyGetEnricher : IProfileEnricher\n{\n    public string Name ="
  },
  {
    "path": "src/Spectre.Console/Enrichment/CI/TeamCityEnricher.cs",
    "chars": 397,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal sealed class TeamCityEnricher : IProfileEnricher\n{\n    public string Nam"
  },
  {
    "path": "src/Spectre.Console/Enrichment/CI/TfsEnricher.cs",
    "chars": 379,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal sealed class TfsEnricher : IProfileEnricher\n{\n    public string Name => "
  },
  {
    "path": "src/Spectre.Console/Enrichment/CI/TravisEnricher.cs",
    "chars": 383,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal sealed class TravisEnricher : IProfileEnricher\n{\n    public string Name "
  },
  {
    "path": "src/Spectre.Console/Enrichment/ProfileEnricher.cs",
    "chars": 2689,
    "preview": "namespace Spectre.Console.Enrichment;\n\ninternal static class ProfileEnricher\n{\n    private static readonly List<IProfile"
  },
  {
    "path": "src/Spectre.Console/Enrichment/ProfileEnrichment.cs",
    "chars": 548,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains settings for profile enrichment.\n/// </summary>\npublic sealed cla"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiConsoleExtensions.Ansi.cs",
    "chars": 1411,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"IAnsiConsole\"/>.\n/// </summary>\n"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiConsoleExtensions.Async.cs",
    "chars": 3755,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Provides extension methods for running tasks with a spinner animation.\n///"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiConsoleExtensions.Exceptions.cs",
    "chars": 1344,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"IAnsiConsole\"/>.\n/// </summary>\n"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiConsoleExtensions.Exclusive.cs",
    "chars": 1240,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"IAnsiConsole\"/>.\n/// </summary>\n"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiConsoleExtensions.Input.cs",
    "chars": 5016,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"IAnsiConsole\"/>.\n/// </summary>\n"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiConsoleExtensions.Live.cs",
    "chars": 717,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"IAnsiConsole\"/>.\n/// </summary>\n"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiConsoleExtensions.Markup.cs",
    "chars": 6939,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"IAnsiConsole\"/>.\n/// </summary>\n"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiConsoleExtensions.Progress.cs",
    "chars": 938,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"IAnsiConsole\"/>.\n/// </summary>\n"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiConsoleExtensions.Prompt.cs",
    "chars": 5578,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"IAnsiConsole\"/>.\n/// </summary>\n"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiConsoleExtensions.Recording.cs",
    "chars": 562,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"IAnsiConsole\"/>.\n/// </summary>\n"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiConsoleExtensions.Screen.cs",
    "chars": 1335,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"IAnsiConsole\"/>.\n/// </summary>\n"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiConsoleExtensions.Write.cs",
    "chars": 1183,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"IAnsiConsole\"/>.\n/// </summary>\n"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiConsoleExtensions.WriteLine.cs",
    "chars": 1590,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"IAnsiConsole\"/>.\n/// </summary>\n"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiConsoleExtensions.cs",
    "chars": 448,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"IAnsiConsole\"/>.\n/// </summary>\n"
  },
  {
    "path": "src/Spectre.Console/Extensions/AnsiWriterExtensions.cs",
    "chars": 1010,
    "preview": "namespace Spectre.Console;\n\ninternal static class AnsiWriterExtensions\n{\n    public static void Write(this AnsiWriter wr"
  },
  {
    "path": "src/Spectre.Console/Extensions/Bcl/CharExtensions.cs",
    "chars": 658,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"char\"/>.\n/// </summary>\npublic s"
  },
  {
    "path": "src/Spectre.Console/Extensions/Bcl/DayOfWeekExtensions.cs",
    "chars": 589,
    "preview": "namespace Spectre.Console;\n\ninternal static class DayOfWeekExtensions\n{\n    public static string GetAbbreviatedDayName(t"
  },
  {
    "path": "src/Spectre.Console/Extensions/Bcl/DictionaryExtensions.cs",
    "chars": 242,
    "preview": "namespace Spectre.Console;\n\ninternal static class DictionaryExtensions\n{\n    public static void Deconstruct<T1, T2>(this"
  },
  {
    "path": "src/Spectre.Console/Extensions/Bcl/EnumerableExtensions.cs",
    "chars": 3161,
    "preview": "namespace Spectre.Console;\n\ninternal static class EnumerableExtensions\n{\n    // List.Reverse clashes with IEnumerable<T>"
  },
  {
    "path": "src/Spectre.Console/Extensions/Bcl/ExceptionExtensions.cs",
    "chars": 1507,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"Exception\"/>.\n/// </summary>\npub"
  },
  {
    "path": "src/Spectre.Console/Extensions/Bcl/Int32Extensions.cs",
    "chars": 307,
    "preview": "namespace Spectre.Console;\n\ninternal static class Int32Extensions\n{\n    public static int Clamp(this int value, int min,"
  },
  {
    "path": "src/Spectre.Console/Extensions/Bcl/ListExtensions.cs",
    "chars": 561,
    "preview": "namespace Spectre.Console;\n\ninternal static class ListExtensions\n{\n    public static void RemoveLast<T>(this List<T> lis"
  },
  {
    "path": "src/Spectre.Console/Extensions/Bcl/StackExtensions.cs",
    "chars": 363,
    "preview": "namespace Spectre.Console;\n\ninternal static class StackExtensions\n{\n    public static void PushRange<T>(this Stack<T> st"
  },
  {
    "path": "src/Spectre.Console/Extensions/Bcl/StringBuilderExtensions.cs",
    "chars": 1095,
    "preview": "namespace Spectre.Console;\n\ninternal static class StringBuilderExtensions\n{\n    public static StringBuilder AppendWithSt"
  },
  {
    "path": "src/Spectre.Console/Extensions/Bcl/StringExtensions.cs",
    "chars": 4613,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Contains extension methods for <see cref=\"string\"/>.\n/// </summary>\npublic"
  },
  {
    "path": "src/Spectre.Console/Extensions/Bcl/TextWriterExtensions.cs",
    "chars": 507,
    "preview": "namespace Spectre.Console;\n\ninternal static class TextWriterExtensions\n{\n    public static bool IsStandardOut(this TextW"
  },
  {
    "path": "src/Spectre.Console/Generated/Backport.System.Threading.Lock.SourceGenerator/Backport.System.Threading.Lock.SourceGenerator.Generator/Backport.System.Threading.Lock.SourceGenerator.AssemblyInfo.cs",
    "chars": 460,
    "preview": "// Copyright (c) All contributors. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the proj"
  },
  {
    "path": "src/Spectre.Console/Generated/Backport.System.Threading.Lock.SourceGenerator/Backport.System.Threading.Lock.SourceGenerator.Generator/Backport.System.Threading.Lock.SourceGenerator.Lock.cs",
    "chars": 6333,
    "preview": "// Copyright (c) All contributors. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the proj"
  },
  {
    "path": "src/Spectre.Console/Generated/Backport.System.Threading.Lock.SourceGenerator/Backport.System.Threading.Lock.SourceGenerator.Generator/Backport.System.Threading.Lock.SourceGenerator.LockFactory.cs",
    "chars": 2621,
    "preview": "// Copyright (c) All contributors. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the proj"
  },
  {
    "path": "src/Spectre.Console/Generated/Backport.System.Threading.Lock.SourceGenerator/Backport.System.Threading.Lock.SourceGenerator.Generator/Backport.System.Threading.Lock.SourceGenerator.ThreadAbortableLock.cs",
    "chars": 8117,
    "preview": "// Copyright (c) All contributors. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the proj"
  },
  {
    "path": "src/Spectre.Console/Generated/Spectre.Console.SourceGenerator/Spectre.Console.SourceGenerator.Colors.ColorGenerator/Color.Generated.g.cs",
    "chars": 60315,
    "preview": "//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code w"
  },
  {
    "path": "src/Spectre.Console/Generated/Spectre.Console.SourceGenerator/Spectre.Console.SourceGenerator.Colors.ColorGenerator/ColorPalette.Generated.g.cs",
    "chars": 9600,
    "preview": "//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code w"
  },
  {
    "path": "src/Spectre.Console/Generated/Spectre.Console.SourceGenerator/Spectre.Console.SourceGenerator.Colors.ColorGenerator/ColorTable.Generated.g.cs",
    "chars": 11629,
    "preview": "//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code w"
  },
  {
    "path": "src/Spectre.Console/Generated/Spectre.Console.SourceGenerator/Spectre.Console.SourceGenerator.Emojis.EmojiGenerator/Emoji.Generated.g.cs",
    "chars": 471466,
    "preview": "//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code w"
  },
  {
    "path": "src/Spectre.Console/Generated/Spectre.Console.SourceGenerator/Spectre.Console.SourceGenerator.Spinners.SpinnerGenerator/Spinner.Generated.g.cs",
    "chars": 74891,
    "preview": "//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code w"
  },
  {
    "path": "src/Spectre.Console/HorizontalAlignment.cs",
    "chars": 338,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents horizontal alignment.\n/// </summary>\npublic enum HorizontalAlig"
  },
  {
    "path": "src/Spectre.Console/IAlignable.cs",
    "chars": 2485,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents something that is alignable.\n/// </summary>\npublic interface IA"
  },
  {
    "path": "src/Spectre.Console/IAnsiConsole.cs",
    "chars": 1275,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents a console.\n/// </summary>\npublic interface IAnsiConsole\n{\n    /"
  },
  {
    "path": "src/Spectre.Console/IAnsiConsoleCursor.cs",
    "chars": 4267,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents the console's cursor.\n/// </summary>\npublic interface IAnsiCons"
  },
  {
    "path": "src/Spectre.Console/IAnsiConsoleInput.cs",
    "chars": 1017,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents the console's input mechanism.\n/// </summary>\npublic interface "
  },
  {
    "path": "src/Spectre.Console/IAnsiConsoleOutput.cs",
    "chars": 758,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents console output.\n/// </summary>\npublic interface IAnsiConsoleOut"
  },
  {
    "path": "src/Spectre.Console/IColumn.cs",
    "chars": 1553,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents a column.\n/// </summary>\npublic interface IColumn : IAlignable,"
  },
  {
    "path": "src/Spectre.Console/IExclusivityMode.cs",
    "chars": 767,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents an exclusivity mode.\n/// </summary>\npublic interface IExclusivi"
  },
  {
    "path": "src/Spectre.Console/IExpandable.cs",
    "chars": 1564,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents something that is expandable.\n/// </summary>\npublic interface I"
  },
  {
    "path": "src/Spectre.Console/IHasBorder.cs",
    "chars": 2808,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents something that has a border.\n/// </summary>\npublic interface IH"
  },
  {
    "path": "src/Spectre.Console/IHasBoxBorder.cs",
    "chars": 3558,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents something that has a box border.\n/// </summary>\npublic interfac"
  },
  {
    "path": "src/Spectre.Console/IHasCulture.cs",
    "chars": 2166,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents something that has a culture.\n/// </summary>\npublic interface I"
  },
  {
    "path": "src/Spectre.Console/IHasJustification.cs",
    "chars": 2666,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents something that has justification.\n/// </summary>\npublic interfa"
  },
  {
    "path": "src/Spectre.Console/IHasTableBorder.cs",
    "chars": 9605,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents something that has a border.\n/// </summary>\npublic interface IH"
  },
  {
    "path": "src/Spectre.Console/IHasTreeNodes.cs",
    "chars": 5935,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents something that has tree nodes.\n/// </summary>\npublic interface "
  },
  {
    "path": "src/Spectre.Console/IHasVisibility.cs",
    "chars": 1483,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents something that can be hidden.\n/// </summary>\npublic interface I"
  },
  {
    "path": "src/Spectre.Console/IOverflowable.cs",
    "chars": 2574,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents something that can overflow.\n/// </summary>\npublic interface IO"
  },
  {
    "path": "src/Spectre.Console/IPaddable.cs",
    "chars": 4928,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents something that is paddable.\n/// </summary>\npublic interface IPa"
  },
  {
    "path": "src/Spectre.Console/IProfileEnricher.cs",
    "chars": 723,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents something that can enrich a profile.\n/// </summary>\npublic inte"
  },
  {
    "path": "src/Spectre.Console/IReadOnlyCapabilities.cs",
    "chars": 835,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents (read-only) terminal capabilities.\n/// </summary>\npublic interf"
  },
  {
    "path": "src/Spectre.Console/InteractionDetector.cs",
    "chars": 949,
    "preview": "namespace Spectre.Console;\n\ninternal static class InteractionDetector\n{\n    public static bool IsInteractive(Interaction"
  },
  {
    "path": "src/Spectre.Console/InteractionSupport.cs",
    "chars": 429,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Determines interactivity support.\n/// </summary>\npublic enum InteractionSu"
  },
  {
    "path": "src/Spectre.Console/Internal/Aligner.cs",
    "chars": 3862,
    "preview": "namespace Spectre.Console;\n\ninternal static class Aligner\n{\n    public static string Align(string text, Justify? alignme"
  },
  {
    "path": "src/Spectre.Console/Internal/Backends/Ansi/AnsiConsoleBackend.cs",
    "chars": 989,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class AnsiConsoleBackend : IAnsiConsoleBackend\n{\n    private readonly IAnsiC"
  },
  {
    "path": "src/Spectre.Console/Internal/Backends/Ansi/AnsiConsoleCursor.cs",
    "chars": 1292,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class AnsiConsoleCursor : IAnsiConsoleCursor\n{\n    private readonly AnsiCons"
  },
  {
    "path": "src/Spectre.Console/Internal/Backends/Ansi/AnsiStringWriter.cs",
    "chars": 1105,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class AnsiStringWriter\n{\n    private readonly SemaphoreSlim _lock;\n    priva"
  },
  {
    "path": "src/Spectre.Console/Internal/Backends/AnsiConsoleFacade.cs",
    "chars": 1607,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class AnsiConsoleFacade : IAnsiConsole\n{\n    private readonly Lock _renderLo"
  },
  {
    "path": "src/Spectre.Console/Internal/Backends/IAnsiConsoleBackend.cs",
    "chars": 283,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents a console backend.\n/// </summary>\ninternal interface IAnsiConso"
  },
  {
    "path": "src/Spectre.Console/Internal/Backends/Legacy/LegacyConsoleBackend.cs",
    "chars": 1951,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class LegacyConsoleBackend : IAnsiConsoleBackend\n{\n    private readonly IAns"
  },
  {
    "path": "src/Spectre.Console/Internal/Backends/Legacy/LegacyConsoleCursor.cs",
    "chars": 952,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class LegacyConsoleCursor : IAnsiConsoleCursor\n{\n    public void Show(bool s"
  },
  {
    "path": "src/Spectre.Console/Internal/Cell.cs",
    "chars": 1901,
    "preview": "namespace Spectre.Console;\n\ninternal static class Cell\n{\n    private const sbyte Sentinel = -2;\n\n    /// <summary>\n    /"
  },
  {
    "path": "src/Spectre.Console/Internal/Collections/ListWithCallback.cs",
    "chars": 1545,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class ListWithCallback<T> : IList<T>, IReadOnlyList<T>\n{\n    private readonl"
  },
  {
    "path": "src/Spectre.Console/Internal/ConsoleHelper.cs",
    "chars": 843,
    "preview": "namespace Spectre.Console;\n\ninternal static class ConsoleHelper\n{\n    public static int GetSafeWidth(int defaultValue = "
  },
  {
    "path": "src/Spectre.Console/Internal/Constants.cs",
    "chars": 218,
    "preview": "namespace Spectre.Console;\n\ninternal static class Constants\n{\n    public const int DefaultTerminalWidth = 80;\n    public"
  },
  {
    "path": "src/Spectre.Console/Internal/DecorationTable.cs",
    "chars": 2186,
    "preview": "namespace Spectre.Console;\n\ninternal static class DecorationTable\n{\n    private static readonly Dictionary<string, Decor"
  },
  {
    "path": "src/Spectre.Console/Internal/DefaultExclusivityMode.cs",
    "chars": 1282,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class DefaultExclusivityMode : IExclusivityMode\n{\n    private readonly Semap"
  },
  {
    "path": "src/Spectre.Console/Internal/DefaultInput.cs",
    "chars": 1447,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class DefaultInput : IAnsiConsoleInput\n{\n    private readonly Profile _profi"
  },
  {
    "path": "src/Spectre.Console/Internal/FileSize.cs",
    "chars": 5491,
    "preview": "namespace Spectre.Console;\n\ninternal readonly struct FileSize\n{\n    public double Bytes { get; }\n    public double Bits "
  },
  {
    "path": "src/Spectre.Console/Internal/FileSizeBase.cs",
    "chars": 416,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Determines possible file size base prefixes.  (base 2/base 10).\n/// </summ"
  },
  {
    "path": "src/Spectre.Console/Internal/FileSizePrefix.cs",
    "chars": 187,
    "preview": "namespace Spectre.Console;\n\ninternal enum FileSizePrefix\n{\n    None = 0,\n    Kilo = 1,\n    Mega = 2,\n    Giga = 3,\n    T"
  },
  {
    "path": "src/Spectre.Console/Internal/IRatioResolvable.cs",
    "chars": 423,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents something that can be used to resolve ratios.\n/// </summary>\nin"
  },
  {
    "path": "src/Spectre.Console/Internal/Polyfill/CancellationToken.cs",
    "chars": 242,
    "preview": "#if NETSTANDARD2_0\nnamespace Spectre.Console;\n\ninternal static class CancellationTokenHelpers\n{\n    public static Task C"
  },
  {
    "path": "src/Spectre.Console/Internal/Polyfill/EnumHelpers.cs",
    "chars": 266,
    "preview": "namespace Spectre.Console;\n\ninternal static class EnumUtils\n{\n    public static T[] GetValues<T>()\n        where T : str"
  },
  {
    "path": "src/Spectre.Console/Internal/Ratio.cs",
    "chars": 4813,
    "preview": "// Ported from Rich by Will McGugan, licensed under MIT.\n// https://github.com/willmcgugan/rich/blob/527475837ebbfc42753"
  },
  {
    "path": "src/Spectre.Console/Internal/ResourceReader.cs",
    "chars": 723,
    "preview": "namespace Spectre.Console;\n\ninternal static class ResourceReader\n{\n    public static string ReadManifestData(string reso"
  },
  {
    "path": "src/Spectre.Console/Internal/Text/Encoding/EncoderCapabilities.cs",
    "chars": 482,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class EncoderCapabilities : IReadOnlyCapabilities\n{\n    public ColorSystem C"
  },
  {
    "path": "src/Spectre.Console/Internal/Text/Encoding/HtmlEncoder.cs",
    "chars": 3397,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class HtmlEncoder : IAnsiConsoleEncoder\n{\n    public string Encode(IAnsiCons"
  },
  {
    "path": "src/Spectre.Console/Internal/Text/Encoding/TextEncoder.cs",
    "chars": 770,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class TextEncoder : IAnsiConsoleEncoder\n{\n    public string Encode(IAnsiCons"
  },
  {
    "path": "src/Spectre.Console/Internal/Text/StringBuffer.cs",
    "chars": 1032,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class StringBuffer : IDisposable\n{\n    private readonly StringReader _reader"
  },
  {
    "path": "src/Spectre.Console/Internal/Text/WhiteSpaceSegmentEnumerator.cs",
    "chars": 1017,
    "preview": "namespace Spectre.Console;\n\ninternal ref struct WhiteSpaceSegmentEnumerator\n{\n    private ReadOnlySpan<char> _remaining;"
  },
  {
    "path": "src/Spectre.Console/Internal/TypeConverterHelper.cs",
    "chars": 6370,
    "preview": "namespace Spectre.Console;\n\ninternal static class TypeConverterHelper\n{\n    internal const DynamicallyAccessedMemberType"
  },
  {
    "path": "src/Spectre.Console/Justify.cs",
    "chars": 340,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents text justification.\n/// </summary>\npublic enum Justify\n{\n    //"
  },
  {
    "path": "src/Spectre.Console/Live/LiveDisplay.cs",
    "chars": 5370,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents a live display.\n/// </summary>\npublic sealed class LiveDisplay\n"
  },
  {
    "path": "src/Spectre.Console/Live/LiveDisplayContext.cs",
    "chars": 1241,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// Represents a context that can be used to interact with a <see cref=\"LiveDi"
  },
  {
    "path": "src/Spectre.Console/Live/LiveDisplayRenderer.cs",
    "chars": 1504,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class LiveDisplayRenderer : IRenderHook\n{\n    private readonly IAnsiConsole "
  },
  {
    "path": "src/Spectre.Console/Live/LiveRenderable.cs",
    "chars": 5930,
    "preview": "namespace Spectre.Console;\n\ninternal sealed class LiveRenderable : Renderable\n{\n    private readonly object _lock = new("
  },
  {
    "path": "src/Spectre.Console/Live/Progress/Columns/DownloadedColumn.cs",
    "chars": 1356,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// A column showing download progress.\n/// </summary>\npublic sealed class Dow"
  },
  {
    "path": "src/Spectre.Console/Live/Progress/Columns/ElapsedTimeColumn.cs",
    "chars": 944,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// A column showing the elapsed time of a task.\n/// </summary>\npublic sealed "
  },
  {
    "path": "src/Spectre.Console/Live/Progress/Columns/PercentageColumn.cs",
    "chars": 1987,
    "preview": "namespace Spectre.Console;\n\n/// <summary>\n/// A column showing task progress in percentage.\n/// </summary>\npublic sealed"
  }
]

// ... and 597 more files (download for full content)

About this extraction

This page contains the full source code of the spectreconsole/spectre.console GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 797 files (3.8 MB), approximately 1.0M tokens, and a symbol index with 2843 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!