aboutsummaryrefslogtreecommitdiff
path: root/mingling/src
Commit message (Collapse)AuthorAgeFilesLines
* chore: remove stale doc comments from ExitCodeSetupunreleased魏曹先生39 hours1-6/+0
|
* chore!: simplify ExitCodeSetup to non-generic unit struct魏曹先生42 hours2-24/+40
|
* chore!: simplify DirectoryEnvironmentSetup to unit struct魏曹先生42 hours1-27/+43
| | | | | | | Remove the generic parameter `C` from `DirectoryEnvironmentSetup`, making it a unit struct that no longer requires `::<C>::default()` for construction. Update the `ProgramSetup` impl and the `setup` method signature accordingly, and improve the doc comments.
* chore!: remove legacy extra_macros feature alias魏曹先生2 days1-11/+0
|
* refactor!: replace build.rs with compile-time macro build steps魏曹先生2 days3-114/+16
| | | | | | | | | | | | | BREAKING CHANGE: Replace the `build`/`builds` feature system with compile-time macro-driven generation. `gen_program!()` now automatically invokes `build_comp!()` and `build_pathf!()` when the `comp`/`pathf` features are enabled, eliminating the need for `build.rs` and `[build-dependencies]` blocks. This removes the `build` feature, the `mingling::build` module, and all related build-time API functions. Completion scripts are now written to `{target_directory}/mingling/` instead of `target/release/`. The `mingling_cli` uses `build_comp!("mling")` for its custom binary name.
* feat(macros)!: change completion context parameter to owned type魏曹先生3 days1-7/+7
| | | | | | BREAKING CHANGE: `#[completion]` functions must now take `ShellContext` by value instead of `&ShellContext`. Reference parameters are reserved for resource injection.
* refactor!: replace pack! macros with derive-based pipeline types魏曹先生3 days4-323/+162
| | | | | | | | | Remove the `pack!`, `pack_err!`, `pack_structural!`, and `pack_err_structural!` macros, replacing all pipeline type definitions with `#[derive(Grouped)]` and `#[derive(Grouped, Wrap)]` attributes. This changes the generated struct shape from named-field structs with an `inner` field to tuple structs accessed via `.0`, and removes the auto-generated `name` and `info` fields from error types.
* feat(macros): add Wrap derive macro魏曹先生3 days1-0/+5
| | | | | | Add `#[derive(Wrap)]` to treat a struct as its inner type, generating `From`, `Deref`, and `DerefMut` implementations. Supports single-field structs or multi-field structs with a `#[wrap]`-marked field.
* refactor!: remove legacy parser feature and migrate to picker魏曹先生3 days11-2691/+62
| | | | | | | | | | The legacy `parser` feature and its module tree (`mingling::parser`, `Argument`, `Picker`, `Pickable`, etc.) have been fully removed and replaced by the `picker` feature powered by `arg-picker`. BREAKING CHANGE: Remove `parser` feature and use `picker` instead. Migration guide: Replace `features = ["parser"]` with `features = ["picker"]` and update API usage per the provided table.
* refactor!: remove Node type and simplify dispatcher macro syntax魏曹先生3 days4-62/+53
| | | | | | | The `dispatcher!` macro no longer requires a `CMD*` dispatcher type argument; the dispatcher struct is now generated internally as `__Dispatcher{Pascal}`. The `Node` type, `node!` macro, and `Dispatcher::node()` / `clone_dispatcher()` methods are removed.
* refactor!: remove dynamic dispatcher registration API魏曹先生3 days3-111/+88
| | | | | | | Dispatchers are now always registered at compile time, removing the `with_dispatcher` / `with_dispatchers` methods and the `PathfinderConfig` API. The `dispatch_tree` feature now only controls the matching strategy (trie vs linear list).
* docs: fix intra-doc links in mingling crate魏曹先生4 days4-8/+8
|
* refactor: rename Confirmer to ResConfirm and OSC94 to ResOSC94魏曹先生4 days9-101/+145
| | | | | | Rename `Confirmer` resource to `ResConfirm`, `ConfirmerCount` to `ConfirmCount`, and `ConfirmerPredicate` to `ConfirmPredicate`. Update related setups, guards, and documentation references.
* feat: move OSC94 under its own module and add confirmer predicates魏曹先生4 days10-370/+570
| | | | | | Extract OSC94 state and guard types from `res` into a dedicated `osc94` module, and add `ConfirmerCount` and `ConfirmerPredicate` types with `YesConfirm` and `TrueConfirm` implementations.
* chore: replace intra-doc links with plain code spans魏曹先生4 days3-6/+6
|
* fix: only send clean state when supported魏曹先生5 days1-1/+3
|
* feat(res): add OSC94 resource and setup for terminal progress魏曹先生5 days5-0/+431
|
* feat(res): add Confirmer resource and stdin args setup魏曹先生5 days5-19/+434
| | | | | | | | Add Confirmer with cached confirmation state and predicate-based parsing for yes/no and true/false inputs. Add ConfirmerSetup to register the resource and auto-confirm when skip mode is enabled. Add StandardInputArgsSetup to read piped stdin as appended arguments. Reorganize module exports in res and setups.
* feat(example-structural-renderer): add YAML output test case魏曹先生5 days1-0/+1
|
* feat(core): move config types to public config module魏曹先生5 days6-21/+23
| | | | | | | | | Refactor program configuration types into a dedicated public `config` module under `mingling_core`, making `StructuralRendererSetting` accessible via `mingling_core::config` instead of the crate root. Update all internal references and setup modules to use the new `config::` path convention.
* chore: remove stale comment from features.rs魏曹先生6 days1-1/+0
|
* refactor: replace with_dispatchers with chained with_dispatcher calls魏曹先生6 days1-5/+10
|
* chore: add "Doc Not Optimize" comments to source files魏曹先生6 days35-0/+35
| | | | | Mark all source files with a comment indicating they are not optimized for documentation purposes.
* refactor: use `Self` and simplify lifetimes in setup types魏曹先生9 days2-13/+18
| | | | | | | Replace `ThisProgram` with `Self` where appropriate and mark constructors as `#[must_use]` and `const` where possible. Simplify explicit lifetimes in `ProgramSetup` and `Default` implementations using elided lifetimes.
* chore: update example docs for PanicSilence enum usage魏曹先生9 days1-2/+2
|
* refactor: replace boolean settings with mode enums魏曹先生9 days2-11/+22
| | | | | | | Update stdout and error output settings to use explicit `RenderOutput` and `ErrorOutput` enums, and replace the `confirm` boolean with distinct `ConfirmationMode`, `InteractionMode`, and `YesAssumption` fields for clearer control flow.
* chore: enforce pedantic clippy lints and fix warnings魏曹先生9 days15-90/+93
|
* refactor(metadata): move metadata module to core crate魏曹先生2026-08-042-59/+1
|
* feat(metadata): add Description convention metadata type魏曹先生2026-08-043-0/+63
|
* feat(gen_program): add get_metadata method stub魏曹先生2026-08-042-0/+11
|
* feat: add entry metadata system with compile-time typed values魏曹先生2026-08-042-0/+199
| | | | | | | | | | | Add `Metadata<B>` trait and `#[metadata(Entry)]` attribute macro to attach arbitrary, compile-time-typed metadata to entries. Implement `ProgramCollect::get_metadata<T>()` for runtime retrieval, backed by a global registry populated by `register_metadata!`. Extend `pathf` with `MetadataPattern` to resolve metadata types across modules at build time. Add two examples demonstrating metadata usage with and without pathf integration.
* refactor(picker): replace global picker functions with PickerHelper魏曹先生2026-08-033-35/+64
| | | | trait
* chore!: rename ErrorDispatcherNotFound to EntryFallback魏曹先生2026-08-033-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魏曹先生2026-08-031-0/+2
|
* fix: add generic program entry point variant魏曹先生2026-08-031-0/+2
|
* docs: update Mingling description wording魏曹先生2026-08-031-1/+1
|
* docs: Add preset feature groups and improve feature docs魏曹先生2026-08-031-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魏曹先生2026-08-031-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魏曹先生2026-08-023-0/+260
|
* revert: Remove picker_comp module and PickerArgSuggest trait魏曹先生2026-08-022-56/+0
|
* refactor!: rename `extra_macros` feature to `extras`feat/new-pipeline-model魏曹先生2026-08-013-30/+41
| | | | | Update all references across docs, examples, and configuration files to use the shorter `extras` feature name.
* docs: remove redundant macro doc comments魏曹先生2026-08-011-70/+0
|
* docs: add detailed EXAMPLES module documentation魏曹先生2026-08-012-1/+6
|
* chore: move lib.md to docs directory魏曹先生2026-08-012-1/+1
|
* feat(picker_comp): add module to bridge picker and comp subsystems魏曹先生2026-07-292-0/+56
|
* feat(example): add command macro example魏曹先生2026-07-281-0/+90
|
* feat(mingling_macros, mingling_pathf): add `#[command]` attribute macro魏曹先生2026-07-281-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魏曹先生2026-07-232-5/+16
|
* feat: add `doc_cfg` feature for docs.rs build魏曹先生2026-07-221-0/+1
|
* feat(any): make `Grouped` trait unsafe and encapsulate `AnyOutput`魏曹先生2026-07-211-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.