private void PrintMethodUsage(CommandTextWriter writer, CommandMethodDescriptor descriptor, CommandMemberDescriptor[] memberDescriptors) { var indent = writer.Indent; var query = from item in memberDescriptors where item.IsRequired == true || item.IsVariables == true select item; var maxWidth = writer.Width - (writer.TabString.Length * writer.Indent); var line = this.Name + " " + descriptor.Name; if (this.Aliases.Any() == true) { line += $"({string.Join(",", this.Aliases)})"; } foreach (var item in query) { var text = this.GetString(item); if (line != string.Empty) { line += " "; } if (line.Length + text.Length >= maxWidth) { writer.WriteLine(line); line = string.Empty.PadLeft(descriptor.Name.Length + 1); } line += text; } writer.WriteLine(line); writer.Indent = indent; }
private void PrintExample(CommandTextWriter writer, CommandMethodDescriptor descriptor, CommandMemberDescriptor[] _) { if (descriptor.Example != string.Empty && this.Usage != CommandUsage.Simple) { writer.BeginGroup(Resources.Text_Example); writer.WriteMultiline(descriptor.Example); writer.EndGroup(); } }
private void PrintDescription(CommandTextWriter writer, CommandMethodDescriptor descriptor, CommandMemberDescriptor[] _) { if (descriptor.Description != string.Empty && this.IsDetail == true) { writer.BeginGroup(Resources.Text_Description); writer.WriteMultiline(descriptor.Description); writer.EndGroup(); } }
private void PrintSummary(CommandTextWriter writer, CommandMethodDescriptor descriptor, CommandMemberDescriptor[] _) { if (descriptor.Summary != string.Empty) { writer.BeginGroup(Resources.Text_Summary); writer.WriteMultiline(descriptor.Summary); writer.EndGroup(); } }
private void Print(CommandTextWriter writer, CommandMethodDescriptor descriptor, CommandMemberDescriptor[] memberDescriptors) { this.PrintSummary(writer, descriptor, memberDescriptors); this.PrintDescription(writer, descriptor, memberDescriptors); this.PrintUsage(writer, descriptor, memberDescriptors); this.PrintExample(writer, descriptor, memberDescriptors); this.PrintRequirements(writer, descriptor, memberDescriptors); this.PrintVariables(writer, descriptor, memberDescriptors); this.PrintOptions(writer, descriptor, memberDescriptors); }
private static string GetNames(CommandMethodDescriptor descriptor) { var sb = new StringBuilder(); sb.Append(descriptor.Name); foreach (var item in descriptor.Aliases) { sb.Append($", {item}"); } return(sb.ToString()); }
private void PrintVariables(CommandTextWriter writer, CommandMethodDescriptor _, CommandMemberDescriptor[] memberDescriptors) { var variables = memberDescriptors.FirstOrDefault(item => item.Usage == CommandPropertyUsage.Variables); if (variables != null && this.Usage != CommandUsage.Simple) { this.BeginGroup(writer, Resources.Text_Variables); this.PrintVariables(writer, variables); this.EndGroup(writer); } }
private void PrintOptions(CommandTextWriter writer, CommandMethodDescriptor _, CommandMemberDescriptor[] memberDescriptors) { var items = memberDescriptors.Where(item => item.Usage == CommandPropertyUsage.General || item.Usage == CommandPropertyUsage.Switch); if (items.Any() == true && this.Usage != CommandUsage.Simple) { this.BeginGroup(writer, Resources.Text_Options); foreach (var item in items) { this.PrintOption(writer, item, items.Last() == item); } this.EndGroup(writer); } }
public virtual void Print(TextWriter writer, CommandMethodDescriptor descriptor, CommandMemberDescriptor memberDescriptor) { if (writer is CommandTextWriter commandWriter) { this.Print(commandWriter, descriptor, memberDescriptor); } else { using var tw = new CommandTextWriter() { IsAnsiSupported = this.IsAnsiSupported }; this.Print(tw, descriptor, memberDescriptor); writer.Write(tw.ToString()); } }
private void PrintRequirements(CommandTextWriter writer, CommandMethodDescriptor _, CommandMemberDescriptor[] memberDescriptors) { var items = memberDescriptors.Where(item => item.IsRequired == true).ToArray(); if (items.Any() == true && this.Usage != CommandUsage.Simple) { writer.BeginGroup(Resources.Text_Requirements); for (var i = 0; i < items.Length; i++) { var item = items[i]; this.PrintRequirement(writer, item); if (i + 1 < items.Length) { writer.WriteLine(); } } writer.EndGroup(); } }
public SubCommandBase(CommandMethodBase command, CommandMethodDescriptor descriptor) { this.command = command; this.descriptor = descriptor; this.Members = descriptor.Members.Select(item => new SubCommandPropertyDescriptor(command, item)).ToArray(); }
private void PrintUsage(CommandTextWriter writer, CommandMethodDescriptor _, CommandMemberDescriptor memberDescriptor) { this.BeginGroup(writer, Resources.Text_Usage); this.PrintOption(writer, memberDescriptor, false); this.EndGroup(writer); }
private void PrintUsage(CommandTextWriter writer, CommandMethodDescriptor descriptor, CommandMemberDescriptor[] memberDescriptors) { this.BeginGroup(writer, Resources.Text_Usage); this.PrintMethodUsage(writer, descriptor, memberDescriptors); this.EndGroup(writer); }
private void PrintDescription(CommandTextWriter writer, CommandMethodDescriptor _, CommandMemberDescriptor memberDescriptor) { writer.BeginGroup(Resources.Text_Description); writer.WriteMultiline(memberDescriptor.Description); writer.EndGroup(); }
private void Print(CommandTextWriter writer, CommandMethodDescriptor descriptor, CommandMemberDescriptor memberDescriptor) { this.PrintSummary(writer, descriptor, memberDescriptor); this.PrintDescription(writer, descriptor, memberDescriptor); this.PrintUsage(writer, descriptor, memberDescriptor); }