Skip to content
This repository was archived by the owner on Sep 20, 2022. It is now read-only.

Commit 49673e1

Browse files
author
Artur Stolear
committed
using same order for usage and argument descriptions
1 parent cb3707c commit 49673e1

1 file changed

Lines changed: 19 additions & 13 deletions

File tree

src/GitReleaseNotes/Logging/ConsoleHelpFormatter.cs

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,13 @@ public class ConsoleHelpFormatter : IHelpFormatter
1515
public ConsoleHelpFormatter()
1616
: this(Console.BufferWidth, 1, 5)
1717
{
18-
1918
}
2019

2120
public ConsoleHelpFormatter(int bufferWidth, int commandSamplePadding, int argumentDescriptionPadding)
2221
{
2322
BufferWidth = bufferWidth;
2423
CommandSamplePadding = commandSamplePadding;
2524
ArgumentDescriptionPadding = argumentDescriptionPadding;
26-
2725
}
2826

2927
public virtual void WriteHelp(ModelHelp modelHelp, TextWriter writer)
@@ -44,10 +42,10 @@ public virtual void WriteHelp(ModelHelp modelHelp, TextWriter writer)
4442

4543
private void WriteArgumentDescriptions(ModelHelp modelHelp)
4644
{
47-
var items = modelHelp.Members
45+
var helpMembers = GetHelpMembers(modelHelp);
46+
47+
var items = helpMembers
4848
.Where(m => string.IsNullOrEmpty(m.HelpText) == false)
49-
.OrderByDescending(m => m.OrdinalIndex.HasValue)
50-
.ThenBy(m => m.OrdinalIndex)
5149
.ToDictionary(ks => ks.OrdinalIndex.HasValue ? ks.Name : GetFullSwitchString(modelHelp.SwitchDelimiter, ks.Switches), es => es.HelpText);
5250

5351
WriteJustifiedOutput(items, ArgumentDescriptionPadding);
@@ -132,14 +130,8 @@ protected virtual void WriteJustifiedItem(string leftColumnText, string rightCol
132130

133131
protected virtual void WriteUsage(ModelHelp modelHelp, TextWriter writer)
134132
{
135-
var values = modelHelp.Members.Where(m => m.OrdinalIndex.HasValue)
136-
.OrderBy(m => m.OrdinalIndex.Value)
137-
.Select(m => m.Name)
138-
.Concat(modelHelp.Members
139-
.Where(m => m.OrdinalIndex.HasValue == false)
140-
.OrderBy(m => m.Name)
141-
.Select(m => string.Format("[{0}]", string.Join("|", m.Switches.Select(s => modelHelp.SwitchDelimiter + s).ToArray()))));
142-
133+
var helpMembers = GetHelpMembers(modelHelp);
134+
var values = helpMembers.Select(m => m.OrdinalIndex.HasValue ? m.Name : GetFullSwitchString(modelHelp.SwitchDelimiter, m.Switches));
143135

144136
//TODO: Figure out actual command name?
145137
var dictionary = new Dictionary<string, string>
@@ -149,4 +141,18 @@ protected virtual void WriteUsage(ModelHelp modelHelp, TextWriter writer)
149141

150142
WriteJustifiedOutput(dictionary, CommandSamplePadding);
151143
}
144+
145+
private static IEnumerable<MemberHelp> GetHelpMembers(ModelHelp modelHelp)
146+
{
147+
var ordinals = modelHelp.Members
148+
.Where(m => m.OrdinalIndex.HasValue)
149+
.OrderBy(m => m.OrdinalIndex.Value);
150+
151+
var switches = modelHelp.Members
152+
.Where(m => m.OrdinalIndex.HasValue == false)
153+
.OrderBy(m => m.Name);
154+
155+
var memberHelps = ordinals.Concat(switches);
156+
return memberHelps;
157+
}
152158
}

0 commit comments

Comments
 (0)