private void PrintUsage(CommandTextWriter writer, CommandMemberDescriptor[] descriptors)
        {
            var query = from item in descriptors
                        where item.IsRequired == true || item.IsVariables == true
                        select item;
            var maxWidth = writer.Width - (writer.TabString.Length * writer.Indent);
            var line     = this.Name;

            writer.BeginGroup(Resources.Text_Usage);
            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(this.Name.Length + 1);
                }
                line += text;
            }
            writer.WriteLine(line);
            writer.EndGroup();
        }
 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 PrintExample(CommandTextWriter writer)
        {
            var example = this.Example;

            if (example != string.Empty && this.Usage != CommandUsage.Simple)
            {
                writer.BeginGroup(Resources.Text_Example);
                writer.WriteMultiline(example);
                writer.EndGroup();
            }
        }
        private void PrintSummary(CommandTextWriter writer)
        {
            var summary = this.Summary;

            if (summary != string.Empty)
            {
                writer.BeginGroup(Resources.Text_Summary);
                writer.WriteMultiline(summary);
                writer.EndGroup();
            }
        }
        private void PrintUsage(CommandTextWriter writer, CommandMethodDescriptor[] _)
        {
            writer.BeginGroup(Resources.Text_Usage);
            var name = this.Name;

            if (this.Aliases.Any() == true)
            {
                name += $"({string.Join(",", this.Aliases)})";
            }
            writer.WriteLine("{0} <sub-command> [options...]", name);
            writer.EndGroup();
        }
        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();
            }
        }
 private void PrintSubcommands(CommandTextWriter writer, CommandMethodDescriptor[] descriptors)
 {
     writer.BeginGroup(Resources.Text_Subcommands);
     foreach (var item in descriptors)
     {
         var name = GetNames(item);
         writer.WriteLine(name);
         if (item.Summary != string.Empty && this.Usage != CommandUsage.Simple)
         {
             writer.Indent++;
             writer.WriteMultiline(item.Summary);
             writer.Indent--;
         }
         if (descriptors.Last() != item && this.Usage != CommandUsage.Simple)
         {
             writer.WriteLine();
         }
     }
     writer.EndGroup();
 }
 private void EndGroup(CommandTextWriter writer)
 {
     writer.EndGroup();
 }
 private void PrintVariables(CommandTextWriter writer, CommandMemberDescriptor descriptor)
 {
     writer.BeginGroup(descriptor.Name + " ...");
     writer.WriteMultiline(descriptor.Description);
     writer.EndGroup();
 }
 private void PrintDescription(CommandTextWriter writer, CommandMethodDescriptor _, CommandMemberDescriptor memberDescriptor)
 {
     writer.BeginGroup(Resources.Text_Description);
     writer.WriteMultiline(memberDescriptor.Description);
     writer.EndGroup();
 }
 private void PrintDescription(CommandTextWriter writer, CommandMemberDescriptor descriptor)
 {
     writer.BeginGroup(Resources.Text_Description);
     writer.WriteLine(descriptor.Description);
     writer.EndGroup();
 }
 private void PrintUsage(CommandTextWriter writer, CommandMemberDescriptor descriptor)
 {
     writer.BeginGroup(Resources.Text_Usage);
     writer.WriteLine(this.GetString(descriptor));
     writer.EndGroup();
 }
 private void PrintSummary(CommandTextWriter writer, CommandMemberDescriptor descriptor)
 {
     writer.BeginGroup(Resources.Text_Summary);
     writer.WriteLine(descriptor.Summary);
     writer.EndGroup();
 }