mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-04-16 00:42:51 +08:00

Allow custom help providers * Version option will show in help even with a default command * Reserve `-v` and `--version` as special Spectre.Console command line arguments (nb. breaking change for Spectre.Console users who have a default command with a settings class that uses either of these switches). * Help writer correctly determines if trailing commands exist and whether to display them as optional or mandatory in the usage statement. * Ability to control the number of indirect commands to display in the help text when the command itself doesn't have any examples of its own. Defaults to 5 (for backward compatibility) but can be set to any integer or zero to disable completely. * Significant increase in unit test coverage for the help writer. * Minor grammatical improvements to website documentation.
35 lines
1012 B
C#
35 lines
1012 B
C#
using Spectre.Console.Rendering;
|
|
|
|
namespace Spectre.Console.Cli.Tests.Data.Help;
|
|
|
|
internal class CustomHelpProvider : HelpProvider
|
|
{
|
|
private readonly string version;
|
|
|
|
public CustomHelpProvider(ICommandAppSettings settings, string version)
|
|
: base(settings)
|
|
{
|
|
this.version = version;
|
|
}
|
|
|
|
public override IEnumerable<IRenderable> GetHeader(ICommandModel model, ICommandInfo command)
|
|
{
|
|
return new IRenderable[]
|
|
{
|
|
new Text("--------------------------------------"), Text.NewLine,
|
|
new Text("--- CUSTOM HELP PROVIDER ---"), Text.NewLine,
|
|
new Text("--------------------------------------"), Text.NewLine,
|
|
Text.NewLine,
|
|
};
|
|
}
|
|
|
|
public override IEnumerable<IRenderable> GetFooter(ICommandModel model, ICommandInfo command)
|
|
{
|
|
return new IRenderable[]
|
|
{
|
|
Text.NewLine,
|
|
new Text($"Version {version}"),
|
|
};
|
|
}
|
|
}
|