Lines Matching refs:arg
65 // Already met any valid arg(then we shouldn't expect subcommands after it).
77 // If any arg sets .last(true)
106 // Does the arg match a subcommand name, or any of its aliases (if defined)
158 "Parser::get_matches_with: FlagSubCommand found in long arg {:?}",
164 ParseResult::EqualsNotProvided { arg } => {
168 arg,
172 ParseResult::NoMatchingArg { arg } => {
177 &arg,
183 ParseResult::UnneededAttachedValue { rest, used, arg } => {
188 arg,
253 ParseResult::EqualsNotProvided { arg } => {
257 arg,
261 ParseResult::NoMatchingArg { arg } => {
268 arg,
283 // Assume this is a value of a previous arg.
286 let arg = &self.cmd[id];
288 self.check_terminator(arg, arg_os.to_value_os())
295 if matcher.needs_more_vals(arg) {
296 ParseResult::Opt(arg.get_id().clone())
342 if let Some(arg) = self
351 // current value matches the next arg.
352 self.is_new_arg(&n, arg)
381 if let Some(arg) = self.cmd.get_keymap().get(&pos_counter) {
382 if arg.is_last_set() && !trailing_values {
396 if arg.is_trailing_var_arg_set() {
400 if matcher.pending_arg_id() != Some(arg.get_id()) || !arg.is_multiple_values_set() {
403 if let Some(_parse_result) = self.check_terminator(arg, arg_os.to_value_os()) {
410 arg.get_id(),
418 if !arg.is_multiple() {
422 parse_state = ParseState::Pos(arg.get_id().clone());
492 // If the arg matches a subcommand name, or any of its aliases (if defined)
548 // Checks if the arg matches a subcommand name, or any of its aliases (if defined)
551 arg: Result<&str, &RawOsStr>,
554 debug!("Parser::possible_subcommand: arg={:?}", arg);
555 let arg = some!(arg.ok());
564 .filter(|s| s.starts_with(arg))
574 if let Some(sc) = self.cmd.find_subcommand(arg) {
581 // Checks if the arg matches a long flag subcommand name, or any of its aliases (if defined)
582 fn possible_long_flag_subcommand(&self, arg: &str) -> Option<&str> {
583 debug!("Parser::possible_long_flag_subcommand: arg={:?}", arg);
590 if long.starts_with(arg) {
593 options.extend(sc.get_all_aliases().filter(|alias| alias.starts_with(arg)))
602 if sc == arg {
606 } else if let Some(sc_name) = self.cmd.find_long_subcmd(arg) {
656 // If allow hyphen, this isn't a new arg.
660 // If this is a long flag, this is a new arg.
664 // If this is a short flag, this is a new arg. But a singe '-' by
698 // FlagSubCommand short arg needs to revisit the current short args, but skip the subcommand itself
739 debug!("Parser::parse_long_arg: prior arg accepts hyphenated values",);
748 arg: long_arg.to_str_lossy().into_owned(),
759 let arg = if let Some(arg) = self.cmd.get_keymap().get(long_arg) {
760 debug!("Parser::parse_long_arg: Found valid arg or flag '{}'", arg);
761 Some((long_arg, arg))
777 if let Some((_long_arg, arg)) = arg {
780 if arg.is_takes_value_set() {
782 "Parser::parse_long_arg({:?}): Found an arg with value '{:?}'",
786 self.parse_opt_value(ident, long_value, arg, matcher, has_eq)
805 used.push(arg.get_id().clone());
810 arg: arg.to_string(),
818 arg,
830 .map_or(false, |arg| {
831 arg.is_allow_hyphen_values_set() && !arg.is_last_set()
841 arg: long_arg.to_owned(),
861 debug!("Parser::parse_short_args: prior arg accepts hyphenated values",);
867 .map_or(false, |arg| arg.is_allow_negative_numbers_set())
876 .map_or(false, |arg| {
877 arg.is_allow_hyphen_values_set() && !arg.is_last_set()
905 arg: format!("-{}", rest.to_str_lossy()),
915 if let Some(arg) = self.cmd.get_keymap().get(&c) {
922 if !arg.is_takes_value_set() {
928 arg,
958 match ok!(self.parse_opt_value(ident, val, arg, matcher, has_eq)) {
984 arg: format!("-{c}"),
995 arg: &Arg,
1000 "Parser::parse_opt_value; arg={}, val={:?}, has_eq={:?}",
1001 arg.get_id(),
1005 debug!("Parser::parse_opt_value; arg.settings={:?}", arg.settings);
1009 if arg.is_require_equals_set() && !has_eq {
1010 if arg.get_min_vals() == 0 {
1017 arg,
1031 arg: arg.to_string(),
1040 arg,
1049 debug!("Parser::parse_opt_value: More arg vals required...");
1052 matcher.pending_values_mut(arg.get_id(), Some(ident), trailing_values);
1053 Ok(ParseResult::Opt(arg.get_id().clone()))
1057 fn check_terminator(&self, arg: &Arg, val: &RawOsStr) -> Option<ParseResult> {
1059 == arg
1064 debug!("Parser::check_terminator: terminator={:?}", arg.terminator);
1073 arg: &Arg,
1086 let value_parser = arg.get_value_parser();
1087 let val = ok!(value_parser.parse_ref(self.cmd, Some(arg), &raw_val));
1089 matcher.add_val_to(arg.get_id(), val, raw_val);
1090 matcher.add_index_to(arg.get_id(), self.cur_idx.get());
1105 let arg = self.cmd.find(&pending.id).expect(INTERNAL_ERROR_MSG);
1109 arg,
1122 arg: &Arg,
1131 arg.get_action(),
1139 ok!(self.verify_num_args(arg, &raw_vals));
1144 if !arg.default_missing_vals.is_empty() {
1148 arg.default_missing_vals
1155 if let Some(val_delim) = arg.get_value_delimiter() {
1176 match arg.get_action() {
1185 if matcher.remove(arg.get_id())
1186 && !(self.cmd.is_args_override_self() || arg.overrides.contains(arg.get_id()))
1190 arg.to_string(),
1191 vec![arg.to_string()],
1195 self.start_custom_arg(matcher, arg, source);
1196 ok!(self.push_arg_values(arg, raw_vals, matcher));
1197 if cfg!(debug_assertions) && matcher.needs_more_vals(arg) {
1212 self.start_custom_arg(matcher, arg, source);
1213 ok!(self.push_arg_values(arg, raw_vals, matcher));
1214 if cfg!(debug_assertions) && matcher.needs_more_vals(arg) {
1228 if matcher.remove(arg.get_id())
1229 && !(self.cmd.is_args_override_self() || arg.overrides.contains(arg.get_id()))
1233 arg.to_string(),
1234 vec![arg.to_string()],
1238 self.start_custom_arg(matcher, arg, source);
1239 ok!(self.push_arg_values(arg, raw_vals, matcher));
1249 if matcher.remove(arg.get_id())
1250 && !(self.cmd.is_args_override_self() || arg.overrides.contains(arg.get_id()))
1254 arg.to_string(),
1255 vec![arg.to_string()],
1259 self.start_custom_arg(matcher, arg, source);
1260 ok!(self.push_arg_values(arg, raw_vals, matcher));
1266 .get_one::<crate::builder::CountType>(arg.get_id().as_str())
1274 matcher.remove(arg.get_id());
1275 self.start_custom_arg(matcher, arg, source);
1276 ok!(self.push_arg_values(arg, raw_vals, matcher));
1302 fn verify_num_args(&self, arg: &Arg, raw_vals: &[OsString]) -> ClapResult<()> {
1308 let expected = arg.get_num_args().expect(INTERNAL_ERROR_MSG);
1315 &super::get_possible_values_cli(arg)
1320 arg.to_string(),
1327 arg.to_string(),
1336 arg.to_string(),
1350 arg.to_string(),
1358 fn remove_overrides(&self, arg: &Arg, matcher: &mut ArgMatcher) {
1359 debug!("Parser::remove_overrides: id={:?}", arg.id);
1360 for override_id in &arg.overrides {
1369 if overrider.overrides.contains(arg.get_id()) {
1384 for arg in self.cmd.get_arguments() {
1385 // Use env only if the arg was absent among command line args,
1387 if matcher.contains(&arg.id) {
1388 debug!("Parser::add_env: Skipping existing arg `{}`", arg);
1392 debug!("Parser::add_env: Checking arg `{}`", arg);
1393 if let Some((_, Some(ref val))) = arg.env {
1400 arg,
1414 for arg in self.cmd.get_arguments() {
1415 debug!("Parser::add_defaults:iter:{}:", arg.get_id());
1416 ok!(self.add_default_value(arg, matcher));
1422 fn add_default_value(&self, arg: &Arg, matcher: &mut ArgMatcher) -> ClapResult<()> {
1423 if !arg.default_vals_ifs.is_empty() {
1425 if !matcher.contains(arg.get_id()) {
1426 for (id, val, default) in arg.default_vals_ifs.iter() {
1445 arg,
1459 if !arg.default_vals.is_empty() {
1462 arg.get_id()
1464 if matcher.contains(arg.get_id()) {
1465 debug!("Parser::add_default_value:iter:{}: was used", arg.get_id());
1470 arg.get_id()
1472 let arg_values: Vec<_> = arg
1481 arg,
1490 arg.get_id()
1499 fn start_custom_arg(&self, matcher: &mut ArgMatcher, arg: &Arg, source: ValueSource) {
1502 self.remove_overrides(arg, matcher);
1504 matcher.start_custom_arg(arg, source);
1506 for group in self.cmd.groups_for_arg(arg.get_id()) {
1510 AnyValue::new(arg.get_id().clone()),
1511 OsString::from(arg.get_id().as_str()),
1523 arg: &str,
1528 debug!("Parser::did_you_mean_error: arg={}", arg);
1542 arg,
1548 // Add the arg to the matches to build a proper usage string
1550 if let Some(arg) = self.cmd.get_keymap().get(&name.as_ref()) {
1551 self.start_custom_arg(matcher, arg, ValueSource::CommandLine);
1572 format!("--{arg}"),
1613 arg: String,
1619 arg: String,
1623 arg: String,