redid ShowHelp() for easier future changes, and for the ability to word wrap
This commit is contained in:
parent
9648b9a27f
commit
b7d2f8a0ee
1 changed files with 34 additions and 2 deletions
36
Program.cs
36
Program.cs
|
@ -132,6 +132,12 @@ public static class Program
|
|||
static void ShowHelp()
|
||||
{
|
||||
var descPadding = 26;
|
||||
var descWidth = Console.BufferWidth - descPadding;
|
||||
if (descWidth < 20)
|
||||
descWidth = 20;
|
||||
else if (descWidth > 56)
|
||||
descWidth = 56;
|
||||
|
||||
var flags = new Dictionary<string, string>
|
||||
{
|
||||
{ "-h, --help", "Display this help message." },
|
||||
|
@ -152,13 +158,39 @@ public static class Program
|
|||
Console.WriteLine();
|
||||
foreach (var flag in flags)
|
||||
{
|
||||
Console.WriteLine($"{flag.Key.PadRight(descPadding)}{flag.Value}");
|
||||
// word wrap the descriptions, if needed
|
||||
var desc = flag.Value;
|
||||
if (desc.Length > descWidth)
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
for (int i = 0; i < desc.Length; i += descWidth)
|
||||
{
|
||||
if (i > 0)
|
||||
sb.Append("".PadLeft((flag.Key.StartsWith("--") ? 5 : 2) + descPadding));
|
||||
sb.AppendLine(desc.Substring(i, i + descWidth > desc.Length ? desc.Length - i : descWidth).Trim());
|
||||
}
|
||||
desc = sb.ToString().TrimEnd('\n');
|
||||
}
|
||||
Console.WriteLine($"{(flag.Key.StartsWith("--") ? " " : " " )}{flag.Key.PadRight(descPadding)}{desc}");
|
||||
}
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Actions:");
|
||||
foreach (var action in actions)
|
||||
{
|
||||
Console.WriteLine($"{action.Key.PadRight(descPadding)}{action.Value}");
|
||||
// word wrap the descriptions, if needed
|
||||
var desc = action.Value;
|
||||
if (desc.Length > descWidth)
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
for (int i = 0; i < desc.Length; i += descWidth)
|
||||
{
|
||||
if (i > 0)
|
||||
sb.Append("".PadLeft(descPadding + 2));
|
||||
sb.AppendLine(desc.Substring(i, i + descWidth > desc.Length ? desc.Length - i : descWidth).Trim());
|
||||
}
|
||||
desc = sb.ToString().TrimEnd('\n');
|
||||
}
|
||||
Console.WriteLine($" {action.Key.PadRight(descPadding)}{desc}");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue