/// <summary> /// Пишет синтаксические правила использования именованных аргументов. /// </summary> void WriteNamedArgumentsSyntax() { if (context.NamedProperties == null) { return; } context.EnsureNamedArgsInfoDefined(); var arg = context.NamedArgsInfo; foreach (var property in context.NamedProperties) { var spec = property.Specification; writer.Write(" "); var text = arg.Prefix + spec.Key.Name; if (spec.IsSwitch && spec.Key.HasAlias) { text += "|" + arg.Prefix + spec.Key.Alias; } if (!spec.IsSwitch) { text += arg.Separator + (spec.IsCollection ? GetCollectionSpec(property) : "VALUE"); } context.WriteQuoted(text, property.IsRequired); } }
/// <summary> /// Пишет описание именованных аргументов. /// </summary> void WriteNamedArgumentsInfo() { if (context.NamedProperties == null) { return; } context.EnsureNamedArgsInfoDefined(); var arg = context.NamedArgsInfo; foreach (var property in context.NamedProperties) { var spec = property.Specification; writer.Write(arg.Prefix); writer.Write(spec.Key.Name); if (spec.Key.HasAlias) { writer.Write(", "); writer.Write(arg.Prefix); writer.Write(spec.Key.Alias); } writer.Write(spec.IsSwitch ? "\t(Switch" : "\t(Named"); writer.Write(property.IsRequired ? ", required" : ", optional"); writer.WriteLine(")"); WriteDescription(property); } }