Skip to content

Commit 56a8138

Browse files
committed
Remove required word if option group is available in help text
1 parent 06fcda7 commit 56a8138

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/CommandLine/Text/HelpText.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -874,6 +874,16 @@ private HelpText AddPreOptionsLine(string value, int maximumLength)
874874

875875
private HelpText AddOption(string requiredWord, string optionGroupWord, int maxLength, Specification specification, int widthOfHelpText)
876876
{
877+
OptionSpecification GetOptionGroupSpecification()
878+
{
879+
if (specification.Tag == SpecificationType.Option && specification is OptionSpecification optionSpecification && optionSpecification.Group.IsJust())
880+
{
881+
return optionSpecification;
882+
}
883+
884+
return null;
885+
}
886+
877887
if (specification.Hidden)
878888
return this;
879889

@@ -896,12 +906,14 @@ private HelpText AddOption(string requiredWord, string optionGroupWord, int maxL
896906
specification.DefaultValue.Do(
897907
defaultValue => optionHelpText = "(Default: {0}) ".FormatInvariant(FormatDefaultValue(defaultValue)) + optionHelpText);
898908

899-
if (specification.Required)
909+
var optionGroupSpecification = GetOptionGroupSpecification();
910+
911+
if (specification.Required && optionGroupSpecification == null)
900912
optionHelpText = "{0} ".FormatInvariant(requiredWord) + optionHelpText;
901913

902-
if (specification.Tag == SpecificationType.Option && specification is OptionSpecification optionSpecification && optionSpecification.Group.IsJust())
914+
if (optionGroupSpecification != null)
903915
{
904-
optionHelpText = "({0}: {1})".FormatInvariant(optionGroupWord, optionSpecification.Group.GetValueOrDefault(null)) + optionHelpText;
916+
optionHelpText = "({0}: {1}) ".FormatInvariant(optionGroupWord, optionGroupSpecification.Group.GetValueOrDefault(null)) + optionHelpText;
905917
}
906918

907919
//note that we need to indent trim the start of the string because it's going to be

0 commit comments

Comments
 (0)