aboutsummaryrefslogtreecommitdiff
path: root/mingling/src
Commit message (Collapse)AuthorAgeFilesLines
* refactor(picker): replace global picker functions with PickerHelper魏曹先生11 hours3-35/+64
| | | | trait
* chore!: rename ErrorDispatcherNotFound to EntryFallback魏曹先生12 hours3-10/+10
| | | | | | | | Rename the internal fallback type and its associated `ProgramCollect` plumbing from `ErrorDispatcherNotFound`/`build_dispatcher_not_found` to `EntryFallback`/`build_entry_fallback`, along with the generated enum variant and pack type. Update all documentation, examples, and tests accordingly.
* docs(mingling): fix doc example compile error魏曹先生24 hours1-0/+2
|
* fix: add generic program entry point variant魏曹先生25 hours1-0/+2
|
* docs: update Mingling description wording魏曹先生25 hours1-1/+1
|
* docs: Add preset feature groups and improve feature docs魏曹先生25 hours1-0/+55
| | | | | | | Add convenience presets (`mini`, `advanced`, `full`, `build_advanced`, `build_full`) to `mingling/Cargo.toml` and document them in both English and Chinese feature docs. Update getting-started guides to reflect the new default `core`/`macros` features.
* feat(gen_program): add Entry struct and program constructors魏曹先生26 hours1-3/+37
| | | | | | | Add `Entry` struct with `pub(crate)` visibility for `inner` fields, plus `new()` and `this()` constructors on `ThisProgram` for docs.rs demonstration of the `gen_program!` macro expansion.
* feat: add docs.rs generated program documentation module魏曹先生30 hours3-0/+260
|
* revert: Remove picker_comp module and PickerArgSuggest trait魏曹先生38 hours2-56/+0
|
* refactor!: rename `extra_macros` feature to `extras`feat/new-pipeline-model魏曹先生2 days3-30/+41
| | | | | Update all references across docs, examples, and configuration files to use the shorter `extras` feature name.
* docs: remove redundant macro doc comments魏曹先生2 days1-70/+0
|
* docs: add detailed EXAMPLES module documentation魏曹先生2 days2-1/+6
|
* chore: move lib.md to docs directory魏曹先生2 days2-1/+1
|
* feat(picker_comp): add module to bridge picker and comp subsystems魏曹先生6 days2-0/+56
|
* feat(example): add command macro example魏曹先生6 days1-0/+90
|
* feat(mingling_macros, mingling_pathf): add `#[command]` attribute macro魏曹先生6 days1-0/+6
| | | | | | | | | | | | | Add a new `#[command]` attribute macro (feature-gated behind `extra_macros`) that converts a plain function with a `Vec<String>` parameter into a fully wired Mingling command. The macro generates a `dispatcher!` call, a `#[chain]` wrapper, and a hidden module re-exporting all generated types. Also add `CommandPattern` to the pathf pattern analyzer to recognize `#[command]`-annotated functions and track their generated hidden modules.
* fix(docs): rename `builds` feature to `build` in examples魏曹先生12 days2-5/+16
|
* feat: add `doc_cfg` feature for docs.rs build魏曹先生12 days1-0/+1
|
* feat(any): make `Grouped` trait unsafe and encapsulate `AnyOutput`魏曹先生13 days1-1/+1
| | | | | | | | | | fields Declare `Grouped` as `unsafe trait` to make its soundness invariant visible. Make `AnyOutput.type_id` and `member_id` private; add public accessors and the `unsafe fn new_bare` constructor.
* feat(macros): add `#[mlint(...)]` marker attribute macro魏曹先生14 days1-0/+3
|
* feat(macros): add render_route macro and renderify attribute for render魏曹先生14 days1-0/+9
| | | | pipeline error routing
* feat(core, macros): add r_append! macro and RenderResult::append_other魏曹先生14 days1-0/+6
| | | | | | | Implement `RenderResult::append_other()` to merge buffered content and immediate output behavior from one result into another. Add the `r_append!` macro with both explicit buffer (`dst, src`) and implicit buffer (`src`) usage forms, re-exported from `mingling::prelude`.
* feat(core)!: replace RenderResult with buffered output model魏曹先生14 days3-5/+17
| | | | | | | | | | Remove `Deref<Target=str>` and `render_text:String` in favor of `render_buffer:Vec<(String, RenderResultMode)>` and an `immediate_output` flag. Add `RenderResultMode` enum, `r_eprint!`/`r_eprintln!` macros, and new buffer manipulation methods (`append_to_buffer`, `eprint`, etc.). Update `Display` to trim output and remove trailing newline. Migrate all callers and tests away from `Deref` usage.
* chore: add missing docs lint and document public API魏曹先生2026-07-202-0/+6
| | | | | | | Add `#![deny(missing_docs)]` across multiple crates and fill in documentation for all public items, including struct fields, enum variants, trait methods, and proc macros. Also mark two shell scripts as executable.
* feat: add docs_rs feature and improve documentation build魏曹先生2026-07-203-3/+16
| | | | | | | | Add `docs_rs` feature flag to enable docs.rs-specific configuration, including `--generate-link-to-definition` and logo display. Include the feature in build scripts, editor settings, and feature constants for consistent documentation generation.
* docs: migrate renderer examples to buffer macro and update docs魏曹先生2026-07-201-4/+6
| | | | | | | | Update all documentation and code examples to use the new `#[renderer(buffer)]` pattern with `r_println!` instead of manually constructing `RenderResult` with `writeln!`.
* feat(macros): add `#[buffer]` attribute and re-export `r_print!(ln)`魏曹先生2026-07-201-0/+8
| | | | | | | | | | | macros Reintroduce `r_print!` and `r_println!` macros as public exports, now supporting both explicit buffer argument and implicit `#[buffer]` attr. Add `#[buffer]` attribute macro that wraps unit-returning functions to produce a `RenderResult` with an automatically injected buffer variable. Relax `RenderResult::print()` and `println()` to accept `impl AsRef<str>`.
* feat: add pick_or, pick_or_default, and pick_or_route shorthands魏曹先生2026-07-201-3/+3
| | | | | | | | | | Remove the `Default` bound from `pick()` and `EntryPicker::pick()`, allowing non-Default types to be used as arguments. Add `IntoPicker::pick_or`, `pick_or_default`, and `pick_or_route` convenience methods for common fallback patterns. Fix token splitting in `arg!` macro to correctly handle angle brackets.
* feat(core)!: remove `to_chain` and `to_render` from `Grouped` trait魏曹先生2026-07-201-1/+4
| | | | | Move routing methods exclusively to the `Routable` trait and update all macro-generated code to reference `Routable` instead of `Grouped`
* feat(arg-picker): add REMAINS constant and re-export via consts module魏曹先生2026-07-202-15/+4
| | | | | Move the REMAINS constant definition into arg_picker and re-export it through mingling's constants module for unified access
* feat(extensions): add routeify extension macro for error routing魏曹先生2026-07-201-0/+4
|
* docs(examples): add example `example-argument-picker"`unreleased魏曹先生2026-07-191-0/+245
|
* fix!: rename `Groupped` to `Grouped` across the codebase魏曹先生2026-07-193-26/+26
|
* fix: propagate help flag to program context for global pickers魏曹先生2026-07-191-3/+12
|
* feat(arg_picker): add mingling_support feature flag魏曹先生2026-07-191-1/+4
|
* feat: deprecate basic and structural renderer setups when picker is魏曹先生2026-07-192-0/+40
| | | | enabled
* docs: add doc comments for Picker, AsPicker, and ProgramSetup traits魏曹先生2026-07-192-0/+8
|
* feat: migrate mingling-specific picker code into mingling crate魏曹先生2026-07-1910-94/+259
| | | | | | | | BREAKING CHANGE: Remove `mingling_support` feature from arg-picker crate. The `EntryPicker` trait and `corebind` module are now part of the mingling crate directly, and `build_pattern1` is now a public method.
* feat(picker): extract remains constant and consolidate imports魏曹先生2026-07-193-8/+26
| | | | | Move the inline `remains_arg` definition into a shared public constant `REMAINS` and update all consumers to import it from the new location.
* refactor(picker): extract pick_flag helper to reduce duplication魏曹先生2026-07-181-20/+30
|
* feat(setups): add picker module with flag-based program setup魏曹先生2026-07-185-0/+333
|
* fix(core)!: conditionally override exit code in ExitCodeSetup魏曹先生2026-07-181-2/+9
|
* ix(macros)!: require explicit `.into()` on chain function return values魏曹先生2026-07-182-10/+10
|
* docs: remove redundant logo link from lib.md魏曹先生2026-07-171-5/+0
|
* docs(mingling): move crate-level docs to separate lib.md魏曹先生2026-07-172-70/+102
|
* refactor: rename `mingling_picker` to `arg_picker`魏曹先生2026-07-171-6/+6
|
* feat(mingling, mingling_picker): add feature constants and fix魏曹先生2026-07-171-0/+22
| | | | | | | | | | formatting Add `MINGLING_CORE` and `MINGLING_MACROS` feature flag constants to the mingling crate, mirroring existing pattern for other features Reorganize imports and reformat closures in mingling_picker for consistent style
* docs: add module-level documentation and improve doc comments魏曹先生2026-07-172-0/+19
|
* feat(picker2): complete Picker2 prototype魏曹先生2026-07-171-6/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Picker2 replaces the original Picker1 with a two-phase (tag → pick) + mask-bitmap architecture, decoupling argument matching from type conversion via a composable matcher pipeline. Architecture - FlagMatcher — boolean flags (--verbose) - ArgMatcher — single flag+value pairs (--name Alice) - MultiArgMatcher — multi-value flag groups (--files a.txt b.txt) - PositionalMatcher — positional arguments, respects `--` - SingleMatcher — composite for Single-type Pickables Types - Flag (Active/Inactive) — semantic bool flag value - String + 14 numeric types via SinglePickable trait - Vec<T> — greedy multi-value (all SinglePickable types) - VecUntil<T> — bounded multi-value via BoundaryCheck trait - VecUntil<T>, pick_string, pick_numbers, pick_bool, pick_flag Style system - UNIX_STYLE (kebab), POWERSHELL_STYLE (Pascal), WINDOWS_STYLE (Pascal) - naming_case auto-conversion via just_fmt integration - Style-aware separator (= for Unix, : for PS/Windows) Infrastructure - internal_repeat! macro generates PickerPattern1..=32 - SinglePickable blanket impl → Pickable - MultiPickableWithBoundary trait with greedy/bounded variants - 151 integration tests - Docs updated for parser feature
* docs(changelog): document RenderResult::new and removed r_print macros魏曹先生2026-07-111-2/+2
|