private static string CreateArg(CliArgAttribute arg, string argStyle, string valueStyle, string delimiterStyle, bool useOptionalDelimiters = true) { var name = arg.Names[0]; return(!string.IsNullOrEmpty(arg.ValueName) ? string.Format( "{10}{6}{11}{0}{1}{2} {10}{8}{11}{3}{4}{5}{10}{9}{11}{10}{7}{11}", argStyle, name, GetReset(argStyle), valueStyle, arg.ValueName, GetReset(valueStyle), arg.IsRequired || !useOptionalDelimiters ? "" : Cli.Escape(_optionalDelimterLeft), arg.IsRequired || !useOptionalDelimiters ? "" : Cli.Escape(_optionalDelimterRight), Cli.Escape(_valueDelimterLeft), Cli.Escape(_valueDelimterRight), delimiterStyle, GetReset(delimiterStyle)) : string.Format( "{5}{3}{6}{0}{1}{2}{5}{4}{6}", argStyle, name, GetReset(argStyle), arg.IsRequired || !useOptionalDelimiters ? "" : Cli.Escape(_optionalDelimterLeft), arg.IsRequired || !useOptionalDelimiters ? "" : Cli.Escape(_optionalDelimterRight), delimiterStyle, GetReset(delimiterStyle))); }
private static string CreateArgDescription( CliArgAttribute arg, string argStyle, string valueStyle, string delimiterStyle) => string.Format( "~Cyan~{0}~R~{2}{3}{1}{3}", CreateArg( arg, argStyle, valueStyle, delimiterStyle, useOptionalDelimiters: false), arg.Description, arg.IsRequired ? " ~DarkYellow~(Required)~R~" : "", Environment.NewLine);
public CliArgProperty(PropertyInfo property, CliArgAttribute attribute) { Property = property; Attribute = attribute; }