Change how non-scalar arguments are displayed in usage

This commit is contained in:
Alexey Golub
2020-01-30 10:58:36 +02:00
parent 515d51a91d
commit 104279d6e9
2 changed files with 21 additions and 5 deletions

View File

@@ -257,7 +257,7 @@ namespace CliFx.Tests
"Description",
"Command using positional parameters",
"Usage",
TestAppName, "param cmd", "<first>", "<parameterb>", "<third list>", "[options]",
TestAppName, "param cmd", "<first>", "<parameterb>", "<third list...>", "[options]",
"Parameters",
"* first",
"* parameterb",
@@ -300,6 +300,16 @@ namespace CliFx.Tests
"Environment variable:", "ENV_SINGLE_VALUE"
}
);
yield return new TestCaseData(
new[] {typeof(ConcatCommand)},
new[] {"concat", "--help"},
new[]
{
"Usage",
TestAppName, "concat", "-i", "<values...>", "[options]",
}
);
}
[TestCaseSource(nameof(GetTestCases_RunAsync))]

View File

@@ -132,7 +132,9 @@ namespace CliFx
foreach (var parameter in command.Parameters)
{
Render(" ");
Render($"<{parameter.DisplayName}>");
Render(parameter.IsScalar
? $"<{parameter.DisplayName}>"
: $"<{parameter.DisplayName}...>");
}
// Required options
@@ -147,13 +149,17 @@ namespace CliFx
{
RenderWithColor($"--{option.Name}", ConsoleColor.White);
Render(" ");
Render("<value>");
Render(option.IsScalar
? "<value>"
: "<values...>");
}
else
{
RenderWithColor($"-{option.ShortName} <value>", ConsoleColor.White);
RenderWithColor($"-{option.ShortName}", ConsoleColor.White);
Render(" ");
Render("<value>");
Render(option.IsScalar
? "<value>"
: "<values...>");
}
}