@@ -180,7 +180,15 @@ fn execute(flags: Flags, config: &mut Config) -> CliResult {
180180 if flags. flag_list {
181181 println ! ( "Installed Commands:" ) ;
182182 for command in list_commands ( config) {
183- println ! ( " {}" , command) ;
183+ let ( command, path) = command;
184+ if flags. flag_verbose > 0 {
185+ match path {
186+ Some ( p) => println ! ( " {:<20} {}" , command, p) ,
187+ None => println ! ( " {:<20}" , command) ,
188+ }
189+ } else {
190+ println ! ( " {}" , command) ;
191+ }
184192 }
185193 return Ok ( ( ) ) ;
186194 }
@@ -301,7 +309,7 @@ fn find_closest(config: &Config, cmd: &str) -> Option<String> {
301309 // Only consider candidates with a lev_distance of 3 or less so we don't
302310 // suggest out-of-the-blue options.
303311 let mut filtered = cmds. iter ( )
304- . map ( |c | ( lev_distance ( c, cmd) , c) )
312+ . map ( |& ( ref c , _ ) | ( lev_distance ( c, cmd) , c) )
305313 . filter ( |& ( d, _) | d < 4 )
306314 . collect :: < Vec < _ > > ( ) ;
307315 filtered. sort_by ( |a, b| a. 0 . cmp ( & b. 0 ) ) ;
@@ -347,7 +355,7 @@ fn execute_external_subcommand(config: &Config, cmd: &str, args: &[String]) -> C
347355}
348356
349357/// List all runnable commands
350- fn list_commands ( config : & Config ) -> BTreeSet < String > {
358+ fn list_commands ( config : & Config ) -> BTreeSet < ( String , Option < String > ) > {
351359 let prefix = "cargo-" ;
352360 let suffix = env:: consts:: EXE_SUFFIX ;
353361 let mut commands = BTreeSet :: new ( ) ;
@@ -367,13 +375,16 @@ fn list_commands(config: &Config) -> BTreeSet<String> {
367375 }
368376 if is_executable ( entry. path ( ) ) {
369377 let end = filename. len ( ) - suffix. len ( ) ;
370- commands. insert ( filename[ prefix. len ( ) ..end] . to_string ( ) ) ;
378+ commands. insert (
379+ ( filename[ prefix. len ( ) ..end] . to_string ( ) ,
380+ Some ( path. display ( ) . to_string ( ) ) )
381+ ) ;
371382 }
372383 }
373384 }
374385
375386 macro_rules! add_cmd {
376- ( $cmd: ident) => ( { commands. insert( stringify!( $cmd) . replace( "_" , "-" ) ) ; } )
387+ ( $cmd: ident) => ( { commands. insert( ( stringify!( $cmd) . replace( "_" , "-" ) , None ) ) ; } )
377388 }
378389 each_subcommand ! ( add_cmd) ;
379390 commands
0 commit comments