@@ -35,7 +35,7 @@ public function __construct(Writer $writer = null)
3535 */
3636 public function showArgumentsHelp (array $ arguments , string $ header = '' , string $ footer = '' ): self
3737 {
38- $ this ->showHelp ('Arguments ' , $ arguments , 6 , $ header , $ footer );
38+ $ this ->showHelp ('Arguments ' , $ arguments , $ header , $ footer );
3939
4040 return $ this ;
4141 }
@@ -49,7 +49,7 @@ public function showArgumentsHelp(array $arguments, string $header = '', string
4949 */
5050 public function showOptionsHelp (array $ options , string $ header = '' , string $ footer = '' ): self
5151 {
52- $ this ->showHelp ('Options ' , $ options , 13 , $ header , $ footer );
52+ $ this ->showHelp ('Options ' , $ options , $ header , $ footer );
5353
5454 return $ this ;
5555 }
@@ -63,7 +63,7 @@ public function showOptionsHelp(array $options, string $header = '', string $foo
6363 */
6464 public function showCommandsHelp (array $ commands , string $ header = '' , string $ footer = '' ): self
6565 {
66- $ this ->showHelp ('Commands ' , $ commands , 4 , $ header , $ footer );
66+ $ this ->showHelp ('Commands ' , $ commands , $ header , $ footer );
6767
6868 return $ this ;
6969 }
@@ -73,13 +73,12 @@ public function showCommandsHelp(array $commands, string $header = '', string $f
7373 *
7474 * @param string $for
7575 * @param array $items
76- * @param int $space
7776 * @param string $header
7877 * @param string $footer
7978 *
8079 * @return void
8180 */
82- protected function showHelp (string $ for , array $ items , int $ space , string $ header = '' , string $ footer = '' )
81+ protected function showHelp (string $ for , array $ items , string $ header = '' , string $ footer = '' )
8382 {
8483 if ($ header ) {
8584 $ this ->writer ->bold ($ header , true );
@@ -93,6 +92,7 @@ protected function showHelp(string $for, array $items, int $space, string $heade
9392 return ;
9493 }
9594
95+ $ space = 4 ;
9696 foreach ($ this ->sortItems ($ items , $ padLen ) as $ item ) {
9797 $ name = $ this ->getName ($ item );
9898 $ this ->writer ->bold (' ' . \str_pad ($ name , $ padLen + $ space ));
@@ -120,7 +120,7 @@ protected function sortItems(array $items, &$max = 0): array
120120 \uasort ($ items , function ($ a , $ b ) use (&$ max ) {
121121 /** @var Parameter $b */
122122 /** @var Parameter $a */
123- $ max = \max (\strlen ($ a -> name ( )), \strlen ($ b -> name ( )), $ max );
123+ $ max = \max (\strlen ($ this -> getName ( $ a )), \strlen ($ this -> getName ( $ b )), $ max );
124124
125125 return $ a ->name () <=> $ b ->name ();
126126 });
@@ -140,17 +140,33 @@ protected function getName($item): string
140140 $ name = $ item ->name ();
141141
142142 if ($ item instanceof Command) {
143- return $ name ;
143+ return \trim ( $ item -> alias () . ' | ' . $ name, ' | ' ) ;
144144 }
145145
146+ return $ this ->label ($ item );
147+ }
148+
149+ /**
150+ * Get parameter label for humans.
151+ *
152+ * @param Parameter $item
153+ *
154+ * @return string
155+ */
156+ protected function label (Parameter $ item )
157+ {
158+ $ name = $ item ->name ();
159+
146160 if ($ item instanceof Option) {
147161 $ name = $ item ->short () . '| ' . $ item ->long ();
148162 }
149163
164+ $ variad = $ item ->variadic () ? '... ' : '' ;
165+
150166 if ($ item ->required ()) {
151- return "< $ name> " ;
167+ return "< $ name$ variad > " ;
152168 }
153169
154- return "[ $ name] " ;
170+ return "[ $ name$ variad ] " ;
155171 }
156172}
0 commit comments