aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* docs: add ARCHIVED.md documenting picker2 squasharchived/picker2_prototype魏曹先生15 hours1-0/+5
|
* docs(dev): update progress status in add-picker2.md魏曹先生16 hours1-192/+11
|
* fix(vec_until): reorganize imports and clean up formatting魏曹先生16 hours1-12/+14
|
* refactor(multi_pickable): extract `VecUntil` into its own module魏曹先生16 hours4-127/+139
|
* feat: add multi-value argument support with boundary checking魏曹先生16 hours8-1/+657
| | | | | | | | | | Add `MultiArgMatcher` for greedy flag matching and `MultiPickableWithBoundary` trait with `VecUntil<T>` wrapper for bounded multi-value collection. Introduce `BoundaryCheck` trait to allow positional multi-value parameters to stop consuming arguments when a non-matching value is encountered.
* fix: hide internal macro from documentation魏曹先生17 hours1-0/+1
| | | | | | Make `vec_string_slice!` private to the crate by adding `#[doc(hidden)]` attribute, since it is an implementation detail not intended for public API consumption
* fix(docs): add intra-doc links to cross-crate symbols魏曹先生17 hours4-4/+4
|
* feat(mingling_picker): reorder PositionalMulti to lowest parse priority魏曹先生17 hours1-14/+14
|
* fix(single-matcher): drop incomplete named flag pairs魏曹先生18 hours3-9/+115
|
* refactor(value): extract Flag into its own module魏曹先生18 hours2-145/+147
|
* feat(flag): implement Not operator for Flag魏曹先生19 hours1-1/+12
|
* feat(pickable): extract SinglePickable into its own module魏曹先生19 hours2-44/+72
|
* feat(builtin): add SinglePickable impl for numeric types魏曹先生19 hours2-0/+21
|
* feat(pickable): introduce SinglePickable trait魏曹先生19 hours2-15/+51
| | | | | Extract a simplified trait for types that consume exactly one argument, with a blanket implementation of the existing Pickable trait
* refactor(pickable): extract seek_single helper from pick_string魏曹先生19 hours2-12/+29
|
* refactor(picker): extract single-value tag logic into SingleMatcher魏曹先生19 hours3-26/+45
|
* feat(picker): add with_route method to change phantom route type魏曹先生19 hours1-0/+16
|
* feat(pick_string): filter flags without values in match_all path魏曹先生19 hours1-12/+16
| | | | | Return empty results when a single token is a flag with no inline value separator, preventing false positive pick matches
* fix(arg_matcher): prevent `--` from being consumed as flag value魏曹先生20 hours2-1/+43
|
* feat(parselib): introduce PositionalMatcher for positional-only args魏曹先生20 hours5-2/+218
| | | | | | | 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.
* refactor(arg): simplify escape handling in char extraction魏曹先生23 hours2-6/+5
| | | | | | Remove redundant comment lines from pick_string and replace explicit escape mappings in arg macro with a catch-all that handles both literal and control characters
* feat(picker): add string value support with inline value matching魏曹先生23 hours5-13/+239
| | | | | Implement `Pickable` for `String` supporting both positional and named flags, and generalize value matching to use style-specific separators
* refactor: extract `seek_end_of_options` into utils and add test helpers魏曹先生23 hours6-79/+37
| | | | | | Deduplicate the `seek_end_of_options` function by moving it from both `arg_matcher` and `flag_matcher` into a single shared implementation in utils. Add `make_masked` and `make_args` test helpers to the test crate
* feat(parselib): implement ArgMatcher for named and positional args魏曹先生23 hours3-9/+420
| | | | | | Implement `on_match_one` and `on_match_all` for `ArgMatcher`, supporting named flags (with eq-mode and short flags), positional arguments, end-of-options marker (`--`), and case-insensitive matching
* refactor(flag_matcher): replace `vec_string_slice!` with single-pass魏曹先生23 hours1-17/+62
| | | | iteration
* feat(picker): add `Flag` value type and `Pickable` implementation魏曹先生24 hours18-46/+509
| | | | | | | | | Add a new `Flag` enum in `mingling_picker::value` that explicitly distinguishes between an absent flag (`Inactive`) and a present flag (`Active`), along with its `Pickable` implementation. Rename internal fields from `flag_*` to `arg_*` for consistency, update the default naming case to `Kebab`, and enable the `mingling_support` feature in workspace settings.
* fix: replace `macros::flag` with `macros::arg` in tests魏曹先生24 hours2-2/+2
|
* chore: remove unused corebind re-export under `core` feature魏曹先生25 hours1-3/+0
|
* refactor: rename PickerFlag and PickerFlagAttr to PickerArg and魏曹先生26 hours12-142/+140
| | | | PickerArgAttr
* refactor: rename flag module to arg魏曹先生26 hours2-2/+2
|
* feat(mingling_picker): replace bool Matcher with FlagMatcher魏曹先生37 hours4-18/+28
| | | | | | Rename `bool_matcher` module to `flag_matcher` and introduce a dedicated `FlagMatcher` struct, moving matching logic away from the `bool` type itself
* feat(picker): add from_args and from_args_skip constructors魏曹先生39 hours1-0/+25
|
* chore(deps): bump just_fmt from 0.1.2 to 0.2.0魏曹先生40 hours35-78/+120
|
* feat(parselib): apply naming case conversion to long flags and aliases魏曹先生41 hours2-4/+75
|
* refactor(test): split monolithic test file into module files魏曹先生41 hours4-567/+572
|
* test: add multi-style flag parsing tests魏曹先生41 hours1-1/+146
| | | | | Add comprehensive test coverage for Windows, PowerShell, and UNIX style flag matching, including case sensitivity and end-of-options behavior
* feat(picker): return NotFound for unmatched boolean flags魏曹先生41 hours2-2/+10
|
* feat(test): add comprehensive bool flag and route tests魏曹先生41 hours1-1/+412
|
* fix(mingling_picker): correct mask size and arg index in tag phase魏曹先生46 hours1-3/+3
| | | | | | | Previously, the mask was sized by the template param `$` and arg indexing used `$-`, causing incorrect results when the actual number of arguments differed from the macro expansion count.
* test: add integration test crate for mingling_picker魏曹先生46 hours4-0/+96
|
* feat(picker): remove route phantom from IntoPicker trait魏曹先生46 hours2-11/+52
| | | | | | Add `with_route` methods to `IntoPicker` and `PickerPattern` for setting the route type explicitly when needed, instead of carrying it as a generic parameter on the trait itself.
* chore: add test projects to IDE linked projects魏曹先生46 hours2-1/+8
|
* fix: set default type parameter for `Picker` struct魏曹先生47 hours2-3/+3
| | | | Update doc examples to pass `String` instead of `&str` to `convert`
* feat(picker): add builtin bool pickable and parselib matcher framework魏曹先生47 hours11-9/+595
| | | | | | | | Add `Pickable` implementation for `bool` and the supporting `Matcher` trait with utility functions for argument matching. Expose `pickable_needed` and `matcher_needed` modules for downstream trait implementors.
* chore(version): add standalone crate version tracking in README魏曹先生2 days2-0/+11
|
* feat(picker): add unwrap, unpack, to_result, to_option on PickerPattern魏曹先生2 days3-32/+44
|
* fix: move mask initialization outside bundle loop in parse.rs魏曹先生2 days1-3/+3
|
* feat(picker): add argument-position mask to tag phase魏曹先生2 days2-3/+15
| | | | | | Pass a mutable mask to tag functions so Pickable implementations can detect which argument positions have already been claimed by other Pickables during the same parsing pass
* feat(picker): add early route on missing flag魏曹先生2 days5-11/+77
| | | | | | | Introduce `or_route` and a `PickerResult` type that carries an optional route value. When a flag is absent, the closure given to `or_route` is evaluated and stored in `error_route`, allowing the caller to exit early without a default value.
* refactor: remove ParseError variant from PickerArgResult魏曹先生2 days1-17/+7
| | | | | | The ParseError variant has been removed and its usages in From, is_found, is_err, and unwrap have been updated to use NotFound instead, simplifying the error handling model.