diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-07-16 23:06:43 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-07-16 23:06:43 +0800 |
| commit | 7bf5ba795361f6abe9d591a2912816ed41a9760b (patch) | |
| tree | cc4f4590f9e6eb9a765473a07967cbd9cad71643 /mingling_picker/src/builtin/pick_string.rs | |
| parent | c906c757aac0260594beb4c9efde4b0e199512ff (diff) | |
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.
Diffstat (limited to 'mingling_picker/src/builtin/pick_string.rs')
| -rw-r--r-- | mingling_picker/src/builtin/pick_string.rs | 4 |
1 files changed, 2 insertions, 2 deletions
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<usize> { if ctx.arg_info.positional { - ArgMatcher::match_one(ctx.into()) + PositionalMatcher::match_one(ctx.into()) .map(|i| vec![i]) .unwrap_or_default() } else { |
