Do not truncate command table

Temporary fix for commands not showing up if they
are missing a description. This is really a bug in the table
rendering and should be fixed there at some point.

Closes #192
This commit is contained in:
Patrik Svensson 2020-12-30 10:36:58 +01:00 committed by Patrik Svensson
parent 4e2251fd62
commit 241423dd16
7 changed files with 58 additions and 5 deletions

1
.gitignore vendored
View File

@ -79,7 +79,6 @@ x64/
_ReSharper*
# NCrunch
*.ncrunch*
.*crunch*.local.xml
_NCrunch_*

View File

@ -0,0 +1,5 @@
<ProjectConfiguration>
<Settings>
<XUnit2Enabled>False</XUnit2Enabled>
</Settings>
</ProjectConfiguration>

View File

@ -0,0 +1,16 @@
using System.Diagnostics.CodeAnalysis;
using Spectre.Console.Cli;
namespace Spectre.Console.Tests.Data
{
public sealed class NoDescriptionCommand : Command<EmptyCommandSettings>
{
[CommandOption("-f|--foo <VALUE>")]
public int Foo { get; set; }
public override int Execute([NotNull] CommandContext context, [NotNull] EmptyCommandSettings settings)
{
return 0;
}
}
}

View File

@ -0,0 +1,9 @@
USAGE:
myapp [OPTIONS] <COMMAND>
OPTIONS:
-h, --help Prints help information
-v, --version Prints version information
COMMANDS:
bar

View File

@ -226,6 +226,24 @@ namespace Spectre.Console.Tests.Unit.Cli
// Then
return Verifier.Verify(output);
}
[Fact]
public Task Should_Not_Show_Truncated_Command_Table_If_Commands_Are_Missing_Description()
{
// Given
var fixture = new CommandAppFixture();
fixture.Configure(configurator =>
{
configurator.SetApplicationName("myapp");
configurator.AddCommand<NoDescriptionCommand>("bar");
});
// When
var (_, output, _, _) = fixture.Run("--help");
// Then
return Verifier.Verify(output);
}
}
}
}

View File

@ -0,0 +1,6 @@
<SolutionConfiguration>
<Settings>
<AllowParallelTestExecution>True</AllowParallelTestExecution>
<SolutionConfigured>True</SolutionConfigured>
</Settings>
</SolutionConfiguration>

View File

@ -244,13 +244,13 @@ namespace Spectre.Console.Cli.Internal
{
grid.AddRow(
$"[silver]<{argument.Name.EscapeMarkup()}>[/]",
argument.Description?.TrimEnd('.') ?? string.Empty);
argument.Description?.TrimEnd('.') ?? " ");
}
else
{
grid.AddRow(
$"[grey][[{argument.Name.EscapeMarkup()}]][/]",
argument.Description?.TrimEnd('.') ?? string.Empty);
argument.Description?.TrimEnd('.') ?? " ");
}
}
@ -324,7 +324,7 @@ namespace Spectre.Console.Cli.Internal
{
grid.AddRow(
GetOptionParts(option),
option.Description?.TrimEnd('.') ?? string.Empty);
option.Description?.TrimEnd('.') ?? " ");
}
grid.AddEmptyRow();
@ -370,7 +370,7 @@ namespace Spectre.Console.Cli.Internal
grid.AddRow(
arguments.ToString().TrimEnd(),
child.Description?.TrimEnd('.') ?? string.Empty);
child.Description?.TrimEnd('.') ?? " ");
}
grid.AddEmptyRow();