From 7bf5ba795361f6abe9d591a2912816ed41a9760b Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Thu, 16 Jul 2026 23:06:43 +0800 Subject: feat(parselib): introduce PositionalMatcher for positional-only args Extract positional argument matching from ArgMatcher into a dedicated matcher that respects the `--` terminator and skips flag-like tokens before it. Add test suite covering basic, after-`--`, and Windows-style behaviour. --- mingling_picker/src/builtin/pick_string.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mingling_picker/src/builtin/pick_string.rs') diff --git a/mingling_picker/src/builtin/pick_string.rs b/mingling_picker/src/builtin/pick_string.rs index f56571a..3363165 100644 --- a/mingling_picker/src/builtin/pick_string.rs +++ b/mingling_picker/src/builtin/pick_string.rs @@ -1,4 +1,4 @@ -use crate::parselib::{ArgMatcher, Matcher, ParserStyle}; +use crate::parselib::{ArgMatcher, Matcher, ParserStyle, PositionalMatcher}; use crate::pickable_needed::*; impl<'a> Pickable<'a> for String { @@ -8,7 +8,7 @@ impl<'a> Pickable<'a> for String { fn tag(ctx: TagPhaseContext) -> Vec { if ctx.arg_info.positional { - ArgMatcher::match_one(ctx.into()) + PositionalMatcher::match_one(ctx.into()) .map(|i| vec![i]) .unwrap_or_default() } else { -- cgit