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();