using NozCli.Repl; using Spectre.Console; namespace NozCli.Commands; public class HelpCommand : ICommand { public string Name => "help"; public string Description => "Show available commands"; public string Usage => "help"; private readonly IReadOnlyList _commands; public HelpCommand(IReadOnlyList commands) => _commands = commands; public Task ExecuteAsync(string[] args, ReplContext ctx) { var table = new Table().BorderStyle(Style.Plain).HideHeaders(); table.AddColumns("cmd", "desc"); foreach (var cmd in _commands.OrderBy(c => c.Name)) table.AddRow($"[cyan]{cmd.Usage,-28}[/]", $"[dim]{cmd.Description}[/]"); AnsiConsole.Write(table); return Task.CompletedTask; } }