@@ -547,10 +547,10 @@ impl<'a, 'v, 'ab, 'u, 'h, 'ar> App<'a, 'v, 'ab, 'u, 'h, 'ar>{
547
547
None
548
548
} )
549
549
. fold ( String :: with_capacity ( 50 ) , |acc, ref o| acc + & format ! ( "-{}{} " , if let Some ( l) = o. long {
550
- format!( "-{}= " , l)
550
+ format!( "-{} " , l)
551
551
} else {
552
- format!( "{} " , o. short. unwrap( ) )
553
- } , o. name) ) ;
552
+ format!( "{}= " , o. short. unwrap( ) )
553
+ } , format! ( "<{}>" , o. name) ) ) ;
554
554
req_opts. shrink_to_fit ( ) ;
555
555
556
556
// usage.push_str(tab);
@@ -607,21 +607,27 @@ impl<'a, 'v, 'ab, 'u, 'h, 'ar> App<'a, 'v, 'ab, 'u, 'h, 'ar>{
607
607
let mut longest_flag = 0 ;
608
608
for fl in self . flags
609
609
. values ( )
610
- . filter_map ( |ref f| f. long )
611
- . map ( |ref l| l. len ( ) + 2 ) {
610
+ . filter ( |ref f| f. long . is_some ( ) )
611
+ // 2='--'
612
+ . map ( |ref a| a. long . unwrap ( ) . len ( ) + 2 ) {
612
613
if fl > longest_flag { longest_flag = fl; }
613
614
}
614
615
let mut longest_opt= 0 ;
615
616
for ol in self . opts
616
617
. values ( )
617
- . filter_map ( |ref f| if f. long . is_some ( ) { let mult = if f. multiple { 3 } else { 0 } ; Some ( f. long . unwrap ( ) . len ( ) + mult + f. name . len ( ) + 3 ) } else { None } ) {
618
+ . filter ( |ref o| o. long . is_some ( ) )
619
+ // 3='...'
620
+ // 5='-- <>'
621
+ . map ( |ref a| if a. multiple { 3 } else { 0 } + a. long . unwrap ( ) . len ( ) + 5 + a. name . len ( ) ) {
618
622
if ol > longest_opt { longest_opt = ol; }
619
623
}
620
624
if longest_opt == 0 {
621
625
for ol in self . opts
622
626
. values ( )
623
- . map ( |ref f|
624
- f. name . len ( ) + if f. multiple { 3 } else { 0 } + 2 ) {
627
+ . filter ( |ref o| o. short . is_some ( ) )
628
+ // 3='...'
629
+ // 4='- <>'
630
+ . map ( |ref a| if a. multiple { 3 } else { 0 } + a. name . len ( ) + 4 ) {
625
631
if ol > longest_opt { longest_opt = ol; }
626
632
}
627
633
}
@@ -661,11 +667,11 @@ impl<'a, 'v, 'ab, 'u, 'h, 'ar> App<'a, 'v, 'ab, 'u, 'h, 'ar>{
661
667
format!( "{}--{}{}" ,
662
668
if v. short. is_some( ) { ", " } else { "" } ,
663
669
l,
664
- // +2 accounts for the ', ' +4 for tab = 6
670
+ // 2='--'
665
671
self . get_spaces( ( longest_flag + 4 ) - ( v. long. unwrap( ) . len( ) + 2 ) ) )
666
672
} else {
667
673
// 6 is tab (4) + -- (2)
668
- self . get_spaces( longest_flag+ 6 ) . to_owned( )
674
+ self . get_spaces( longest_flag + 6 ) . to_owned( )
669
675
} ,
670
676
v. help. unwrap_or( tab) ) ;
671
677
}
@@ -676,22 +682,19 @@ impl<'a, 'v, 'ab, 'u, 'h, 'ar> App<'a, 'v, 'ab, 'u, 'h, 'ar>{
676
682
for v in self . opts . values ( ) {
677
683
// if it supports multiple we add '...' i.e. 3 to the name length
678
684
let mult = if v. multiple { 3 } else { 0 } ;
679
- // let long_len = if v.long.is_some() { v.long.unwrap().len() + 3}else{0};
680
- // let mut needs_tab = false;
681
685
println ! ( "{}{}{}{}{}{}" , tab,
682
686
if let Some ( s) = v. short{ format!( "-{}" , s) } else{ tab. to_owned( ) } ,
683
687
if let Some ( l) = v. long {
684
- format!( "{}--{}= " ,
688
+ format!( "{}--{} " ,
685
689
if v. short. is_some( ) { ", " } else { "" } , l)
686
690
} else {
687
691
" " . to_owned( )
688
692
} ,
689
- format!( "{} {}" , v. name, if v. multiple{ "..." } else { "" } ) ,
693
+ format!( "<{}> {}" , v. name, if v. multiple{ "..." } else { "" } ) ,
690
694
if v. long. is_some( ) {
691
- self . get_spaces( ( longest_opt + 4 ) - ( v. long. unwrap( ) . len( ) + v. name. len( ) + 2 + mult ) )
695
+ self . get_spaces( ( longest_opt) - ( v. long. unwrap( ) . len( ) + v. name. len( ) + mult + 1 ) )
692
696
} else {
693
- // 7 is '--=' (3) + tab (4)
694
- self . get_spaces( ( longest_opt + 6 ) - ( v. name. len( ) + mult) )
697
+ self . get_spaces( ( longest_opt + 3 ) - ( v. name. len( ) + mult) )
695
698
} ,
696
699
get_help!( v) ) ;
697
700
}
0 commit comments