示例#1
0
        private void PrintOption(IOption opt)
        {
            List <IArgument> args = opt.Arguments.ToList( );

            Indent(2);
            if (opt.FlagAlias.HasValue)
            {
                _writer.Write(Spec.Config.FlagPrefix( ));
                _writer.Write(opt.FlagAlias);
                _writer.Write(',');
            }
            else
            {
                Indent(Spec.Config.FlagPrefix( ).Length + 2);
            }

            Indent(1);
            _writer.Write(Spec.Config.OptionPrefix( ));
            _writer.Write(opt.GetDeUnifiedName(Spec.Config));
            Indent(1);
            PrintArgumentLine(args);
            PrintDynamicArgumentLine(opt);
            _writer.WriteLine( );

            if (!string.IsNullOrEmpty(opt.Description))
            {
                Indent(15);
                _writer.WriteLine(opt.Description);
            }

            if (opt.DynamicArgument != null)
            {
                args.Add(opt.DynamicArgument);
            }

            foreach (IArgument arg in args)
            {
                PrintArgument(arg, true);
            }
        }