aboutsummaryrefslogtreecommitdiff
path: root/mingling_picker/src/parselib
Commit message (Collapse)AuthorAgeFilesLines
* fix(single-matcher): drop incomplete named flag pairsfeat/picker2魏曹先生88 min.1-9/+29
|
* refactor(pickable): extract seek_single helper from pick_string魏曹先生3 hours1-0/+25
|
* refactor(picker): extract single-value tag logic into SingleMatcher魏曹先生3 hours1-0/+39
|
* fix(arg_matcher): prevent `--` from being consumed as flag value魏曹先生3 hours1-1/+4
|
* feat(parselib): introduce PositionalMatcher for positional-only args魏曹先生3 hours1-0/+71
| | | | | | | 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.
* feat(picker): add string value support with inline value matching魏曹先生6 hours1-13/+18
| | | | | 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魏曹先生7 hours3-44/+16
| | | | | | 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魏曹先生7 hours1-9/+142
| | | | | | 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魏曹先生7 hours1-17/+62
| | | | iteration
* feat(picker): add `Flag` value type and `Pickable` implementation魏曹先生7 hours2-2/+23
| | | | | | | | | 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.
* feat(mingling_picker): replace bool Matcher with FlagMatcher魏曹先生21 hours1-1/+9
| | | | | | Rename `bool_matcher` module to `flag_matcher` and introduce a dedicated `FlagMatcher` struct, moving matching logic away from the `bool` type itself
* feat(parselib): apply naming case conversion to long flags and aliases魏曹先生25 hours1-2/+4
|
* fix: set default type parameter for `Picker` struct魏曹先生30 hours1-2/+2
| | | | Update doc examples to pass `String` instead of `&str` to `convert`
* feat(picker): add builtin bool pickable and parselib matcher framework魏曹先生31 hours3-0/+423
| | | | | | | | 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.
* feat(picker): add `mingling_support` feature and `is_flag` field魏曹先生48 hours1-1/+0
| | | | | | | Rename the `core` feature to `mingling_support` in `mingling_picker` and propagate it through `mingling_picker_macros`. Add the `is_flag` field to `PickerTag` to indicate participation in parsing after a `--` separator. Remove empty `seek.rs` file.
* feat: add lifetime-bound pickable support and refine type constraints魏曹先生2 days1-0/+1
|
* feat(style): make ParserStyle fields public魏曹先生2 days1-7/+7
|
* feat(style): fall back to UNIX_STYLE when global style unset魏曹先生2 days1-7/+3
|
* feat(mingling): add ParserStyle and re-export parselib module魏曹先生2 days1-0/+86
Add a configurable `ParserStyle` struct defining option prefix, separator and case-sensitivity conventions, with built-in constants for Unix, PowerShell and Windows styles. Provide a one-time global style setter. Re-export the new `parselib` module from `mingling_picker` and wire it through `mingling`'s `picker` facade. Also relocate `Groupped` and `RenderResult` re-exports in `prelude` for better ordering.