src/cli/command.rs: fix completion - never display argument parameters as option
This commit is contained in:
		| @ -438,7 +438,8 @@ fn record_done_argument(done: &mut HashMap<String, String>, parameters: &ObjectS | ||||
| fn print_simple_completion( | ||||
|     cli_cmd: &CliCommand, | ||||
|     done: &mut HashMap<String, String>, | ||||
|     arg_param: &[&str], | ||||
|     all_arg_param: &[&str], // this is always the full list | ||||
|     arg_param: &[&str], // we remove done arguments | ||||
|     args: &[String], | ||||
| ) { | ||||
|     // fixme: arg_param, fixed_param | ||||
| @ -448,7 +449,7 @@ fn print_simple_completion( | ||||
|         let prop_name = arg_param[0]; | ||||
|         if args.len() > 1 { | ||||
|             record_done_argument(done, &cli_cmd.info.parameters, prop_name, &args[0]); | ||||
|             print_simple_completion(cli_cmd, done, &arg_param[1..], &args[1..]); | ||||
|             print_simple_completion(cli_cmd, done, arg_param, &arg_param[1..], &args[1..]); | ||||
|             return; | ||||
|         } else if args.len() == 1 { | ||||
|             record_done_argument(done, &cli_cmd.info.parameters, prop_name, &args[0]); | ||||
| @ -485,6 +486,7 @@ fn print_simple_completion( | ||||
|  | ||||
|     for (name, (_optional, _schema)) in &cli_cmd.info.parameters.properties { | ||||
|         if done.contains_key(*name) { continue; } | ||||
|         if all_arg_param.contains(name) { continue; } | ||||
|         let option = String::from("--") + name; | ||||
|         if option.starts_with(prefix) { | ||||
|             println!("{}", option); | ||||
| @ -498,7 +500,7 @@ fn print_help_completion(def: &CommandLineInterface, help_cmd: &CliCommand, args | ||||
|  | ||||
|     match def { | ||||
|         CommandLineInterface::Simple(_) => { | ||||
|             print_simple_completion(help_cmd, &mut done, &help_cmd.arg_param, args); | ||||
|             print_simple_completion(help_cmd, &mut done, &help_cmd.arg_param, &help_cmd.arg_param, args); | ||||
|             return; | ||||
|         } | ||||
|         CommandLineInterface::Nested(map) => { | ||||
| @ -512,7 +514,7 @@ fn print_help_completion(def: &CommandLineInterface, help_cmd: &CliCommand, args | ||||
|             let first = &args[0]; | ||||
|  | ||||
|             if first.starts_with("-") { | ||||
|                 print_simple_completion(help_cmd, &mut done, &help_cmd.arg_param, args); | ||||
|                 print_simple_completion(help_cmd, &mut done, &help_cmd.arg_param, &help_cmd.arg_param, args); | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
| @ -538,7 +540,7 @@ fn print_nested_completion(def: &CommandLineInterface, args: &[String]) { | ||||
|             cli_cmd.fixed_param.iter().map(|(key, value)| { | ||||
|                 record_done_argument(&mut done, &cli_cmd.info.parameters, &key, &value); | ||||
|             }); | ||||
|             print_simple_completion(cli_cmd, &mut done, &cli_cmd.arg_param, args); | ||||
|             print_simple_completion(cli_cmd, &mut done, &cli_cmd.arg_param, &cli_cmd.arg_param, args); | ||||
|             return; | ||||
|         } | ||||
|         CommandLineInterface::Nested(map) => { | ||||
|  | ||||
		Reference in New Issue
	
	Block a user