@@ -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