Phil Scott 43e9669395 Update documentation packages to latest versions
* HighlightService was modified to support GetClassifiedSpansAsync method
* Updated Program.cs to pull in the proper location of the Json and ImageSharp extension projects
* Statiq must have changed how they are doing xrefs, so I adjusted those to be more specific with a few links
2024-11-23 14:48:46 +01:00

76 lines
1.9 KiB
Markdown

Title: Status
Order: 10
RedirectFrom: status
Description: "*Spectre.Console* can display information about long running tasks in the console with the Status control."
Highlights:
- Custom spinner control for running tasks.
- Fallback for non-interactive consoles such as CI runners.
Reference:
- T:Spectre.Console.Status
- M:Spectre.Console.AnsiConsole.Status
Xref: live-status
---
Spectre.Console can display information about long running tasks in the console.
<?# AsciiCast cast="status" /?>
<?# Alert ?>
The status display is not
thread safe, and using it together with other interactive components such as
prompts, progress displays or other status displays are not supported.
<?#/ Alert ?>
If the current terminal isn't considered "interactive", such as when running
in a continuous integration system, or the terminal can't display
ANSI control sequence, any progress will be displayed in a simpler way.
## Usage
```csharp
// Synchronous
AnsiConsole.Status()
.Start("Thinking...", ctx =>
{
// Simulate some work
AnsiConsole.MarkupLine("Doing some work...");
Thread.Sleep(1000);
// Update the status and spinner
ctx.Status("Thinking some more");
ctx.Spinner(Spinner.Known.Star);
ctx.SpinnerStyle(Style.Parse("green"));
// Simulate some work
AnsiConsole.MarkupLine("Doing some more work...");
Thread.Sleep(2000);
});
```
## Asynchronous status
If you prefer to use async/await, you can use `StartAsync` instead of `Start`.
```csharp
// Asynchronous
await AnsiConsole.Status()
.StartAsync("Thinking...", async ctx =>
{
// Omitted
});
```
## Configure
```csharp
AnsiConsole.Status()
.AutoRefresh(false)
.Spinner(Spinner.Known.Star)
.SpinnerStyle(Style.Parse("green bold"))
.Start("Thinking...", ctx =>
{
// Omitted
ctx.Refresh();
});
```