diff --git a/.gitignore b/.gitignore index 06993f2..8c56e1c 100644 --- a/.gitignore +++ b/.gitignore @@ -79,7 +79,6 @@ x64/ _ReSharper* # NCrunch -*.ncrunch* .*crunch*.local.xml _NCrunch_* diff --git a/src/Spectre.Console.Testing/Spectre.Console.Testing.v3.ncrunchproject b/src/Spectre.Console.Testing/Spectre.Console.Testing.v3.ncrunchproject new file mode 100644 index 0000000..cff5044 --- /dev/null +++ b/src/Spectre.Console.Testing/Spectre.Console.Testing.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/src/Spectre.Console.Tests/Data/Commands/NoDescriptionCommand.cs b/src/Spectre.Console.Tests/Data/Commands/NoDescriptionCommand.cs new file mode 100644 index 0000000..9116345 --- /dev/null +++ b/src/Spectre.Console.Tests/Data/Commands/NoDescriptionCommand.cs @@ -0,0 +1,16 @@ +using System.Diagnostics.CodeAnalysis; +using Spectre.Console.Cli; + +namespace Spectre.Console.Tests.Data +{ + public sealed class NoDescriptionCommand : Command + { + [CommandOption("-f|--foo ")] + public int Foo { get; set; } + + public override int Execute([NotNull] CommandContext context, [NotNull] EmptyCommandSettings settings) + { + return 0; + } + } +} diff --git a/src/Spectre.Console.Tests/Expectations/CommandAppTests.Help.Help.Should_Not_Show_Truncated_Command_Table_If_Commands_Are_Missing_Description.verified.txt b/src/Spectre.Console.Tests/Expectations/CommandAppTests.Help.Help.Should_Not_Show_Truncated_Command_Table_If_Commands_Are_Missing_Description.verified.txt new file mode 100644 index 0000000..f214d32 --- /dev/null +++ b/src/Spectre.Console.Tests/Expectations/CommandAppTests.Help.Help.Should_Not_Show_Truncated_Command_Table_If_Commands_Are_Missing_Description.verified.txt @@ -0,0 +1,9 @@ +USAGE: + myapp [OPTIONS] + +OPTIONS: + -h, --help Prints help information + -v, --version Prints version information + +COMMANDS: + bar \ No newline at end of file diff --git a/src/Spectre.Console.Tests/Unit/Cli/CommandAppTests.Help.cs b/src/Spectre.Console.Tests/Unit/Cli/CommandAppTests.Help.cs index 2d7c763..2bf5269 100644 --- a/src/Spectre.Console.Tests/Unit/Cli/CommandAppTests.Help.cs +++ b/src/Spectre.Console.Tests/Unit/Cli/CommandAppTests.Help.cs @@ -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("bar"); + }); + + // When + var (_, output, _, _) = fixture.Run("--help"); + + // Then + return Verifier.Verify(output); + } } } } diff --git a/src/Spectre.Console.v3.ncrunchsolution b/src/Spectre.Console.v3.ncrunchsolution new file mode 100644 index 0000000..10420ac --- /dev/null +++ b/src/Spectre.Console.v3.ncrunchsolution @@ -0,0 +1,6 @@ + + + True + True + + \ No newline at end of file diff --git a/src/Spectre.Console/Cli/Internal/HelpWriter.cs b/src/Spectre.Console/Cli/Internal/HelpWriter.cs index 44c5465..72b2f30 100644 --- a/src/Spectre.Console/Cli/Internal/HelpWriter.cs +++ b/src/Spectre.Console/Cli/Internal/HelpWriter.cs @@ -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();