示例#1
0
        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());
        }
示例#2
0
 public CommandOption(ICommandOptionDescriptor option, string?value, int position)
 {
     Option   = option ?? throw new ArgumentNullException(nameof(option));
     Value    = value;
     Position = position;
 }