private string GetOptions(ICommandOptionDescriptor option, ICommandOptionDescriptor?helpOption) { var sb = new StringBuilder(); // --help, -h options are exclusive options. if (helpOption != null && helpOption != option) { if (helpOption.ShortName.Any()) { sb.Append($"(--{helpOption.Name} {string.Join(" ", helpOption.ShortName.Select(x => "-" + x))})"); } else { sb.Append($"(--{helpOption.Name})"); } } var isEnumerableLike = option is CommandOptionDescriptor commandOption && commandOption.IsEnumerableLike; if (option.ShortName.Any()) { sb.Append($"{(isEnumerableLike ? "*" : "")}'{{--{option.Name},{string.Join(",", option.ShortName.Select(x => "-" + x))}}}'"); } else { sb.Append($"{(isEnumerableLike ? "*" : "")}--{option.Name}"); } return(sb.ToString()); }
public CommandOption(ICommandOptionDescriptor option, string?value, int position) { Option = option ?? throw new ArgumentNullException(nameof(option)); Value = value; Position = position; }