fix(command_parser): don't return a command early if there is still input left

This commit is contained in:
dusk 2025-03-29 14:09:40 +09:00
parent e8f8e5f0a3
commit a5576ad225
No known key found for this signature in database

View file

@ -109,8 +109,8 @@ pub fn parse_command(
println!("flag matched {matched_flag:?}"); println!("flag matched {matched_flag:?}");
raw_flags.push((current_token_idx, matched_flag)); raw_flags.push((current_token_idx, matched_flag));
} }
// if we have a command, stop parsing and return it // if we have a command, stop parsing and return it (only if there is no remaining input)
if let Some(command) = local_tree.command() { if current_pos >= input.len() && let Some(command) = local_tree.command() {
// match the flags against this commands flags // match the flags against this commands flags
let mut flags: HashMap<String, Option<ParameterValue>> = HashMap::new(); let mut flags: HashMap<String, Option<ParameterValue>> = HashMap::new();
let mut misplaced_flags: Vec<MatchedFlag> = Vec::new(); let mut misplaced_flags: Vec<MatchedFlag> = Vec::new();