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