aboutsummaryrefslogtreecommitdiff
path: root/mingling/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* feat(macros): add `#[mlint(...)]` marker attribute macro魏曹先生46 hours1-0/+3
|
* feat(macros): add render_route macro and renderify attribute for render魏曹先生47 hours1-0/+9
| | | | pipeline error routing
* feat(core, macros): add r_append! macro and RenderResult::append_other魏曹先生2 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魏曹先生2 days1-0/+12
| | | | | | | | | | 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魏曹先生3 days1-0/+4
| | | | | | | 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魏曹先生3 days1-2/+4
| | | | | | | | 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魏曹先生3 days1-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)`魏曹先生3 days1-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(core)!: remove `to_chain` and `to_render` from `Grouped` trait魏曹先生3 days1-1/+4
| | | | | Move routing methods exclusively to the `Routable` trait and update all macro-generated code to reference `Routable` instead of `Grouped`
* feat(extensions): add routeify extension macro for error routing魏曹先生3 days1-0/+4
|
* fix!: rename `Groupped` to `Grouped` across the codebase魏曹先生4 days1-4/+4
|
* feat(arg_picker): add mingling_support feature flag魏曹先生4 days1-1/+4
|
* feat: migrate mingling-specific picker code into mingling crate魏曹先生4 days1-5/+6
| | | | | | | | 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.
* docs(mingling): move crate-level docs to separate lib.md魏曹先生6 days1-70/+1
|
* refactor: rename `mingling_picker` to `arg_picker`魏曹先生6 days1-6/+6
|
* feat(picker2): complete Picker2 prototype魏曹先生6 days1-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
* style: Reorder imports and reformat code with cargo fmt魏曹先生12 days1-4/+4
|
* feat(mingling): add Write import and doc comment for picker re-export魏曹先生12 days1-1/+4
|
* feat: require renderers to return RenderResult instead of mutating one魏曹先生12 days1-17/+14
| | | | | | | BREAKING CHANGE: The `render` method on `Renderer`, `HelpRequest`, and `ProgramCollect` now returns `RenderResult` instead of taking `&mut RenderResult`. The `r_print!` and `r_println!` macros have been removed in favor of using `std::io::Write` directly on `RenderResult`.
* feat: add mingling-picker and mingling-picker-macros crates魏曹先生12 days1-1/+13
|
* chore: run cargo fmt and rearrange re-exports in mingling魏曹先生2026-07-021-9/+9
|
* docs: improve documentation, mark internal items as `#[doc(hidden)]`魏曹先生2026-06-271-25/+38
| | | | | | | | Add module-level docs for the hook system, enhance doc examples for macros with usage syntax, fix typos in cross-references, and hide internal debugging macros and mock types from public documentation
* refactor(general_renderer): rename to structural_renderer魏曹先生2026-06-261-6/+6
|
* feat(core): decouple structured output from Groupped trait魏曹先生2026-06-261-0/+19
| | | | | | | Introduce `StructuralData` sealed trait and `pack_structural!` / `group_structural!` / `derive(StructuralData)` macros to control structured rendering separately from grouping. `Groupped` no longer requires `Serialize`.
* Remove all explicit program name modes from macrosremoved-shit魏曹先生2026-06-201-8/+8
|
* Add `group!` macro for registering external types魏曹先生2026-06-201-0/+3
|
* Re-export Groupped trait from prelude魏曹先生2026-06-201-0/+2
|
* Add `pack_err!` macro for error structs with automatic name field魏曹先生2026-06-181-0/+6
|
* Update repository URLs to mingling-rs organizationWeicao-CatilGrass2026-06-101-1/+1
|
* Enhance code quality across the entire codebaseWeicao-CatilGrass2026-05-311-5/+5
|
* Add auto-generated feature flags module and tooling魏曹先生2026-05-291-38/+1
|
* Rename error types with consistent naming convention魏曹先生2026-05-291-1/+1
|
* Rewrite documentation for Mingling library魏曹先生2026-05-281-28/+30
|
* Gate extra_macros items behind the feature flag魏曹先生2026-05-241-0/+2
|
* Move entry, route, and program_setup macros to extra_macros feature魏曹先生2026-05-241-2/+3
| | | | | | Remove these macros from the prelude and gate them behind the `extra_macros` feature flag. Update examples and documentation to enable the new feature where these macros are used.
* Rework examples and add entry macro for testingWeicao-CatilGrass2026-05-231-0/+4
|
* Re-export `mingling_core::setup::*` from `setup` moduleWeicao-CatilGrass2026-05-231-0/+1
|
* Add `empty_result!` macro and `REPL` resource, improve examples魏曹先生2026-05-191-0/+4
|
* Refactor general_renderer into granular format-specific features魏曹先生2026-05-161-0/+12
|
* Add prelude module with common macro and trait re-exports魏曹先生2026-05-151-0/+37
|
* Add scripts for building documentation and update docs魏曹先生2026-05-131-4/+11
|
* Migrate exit code control to resource-based systemWeicao-CatilGrass2026-05-131-0/+8
|
* Add CI tooling and cargo alias `ci`Weicao-CatilGrass2026-05-091-1/+1
|
* Expose compile-time feature flags as public constants魏曹先生2026-05-081-0/+30
|
* Add compile-time dispatch tree generation for O(len) command routing魏曹先生2026-05-071-0/+2
|
* Add missing articles and improve documentation魏曹先生2026-05-031-1/+3
|
* Fix comment and constrain ProgramCollect generic bounds魏曹先生2026-04-291-1/+1
|
* Add `route!` macro for early error routing魏曹先生2026-04-271-0/+2
|
* Rename feature `clap_parser` to `clap`魏曹先生2026-04-261-1/+1
|
* Add help system with `#[help]` macro and `HelpRequest` trait魏曹先生2026-04-251-0/+4
|