aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* feat(renderer): add ExitCode conversions for RenderResult魏曹先生12 hours1-0/+13
|
* feat(dispatcher, gen_program): add From impl and default Entry pack type魏曹先生14 hours3-0/+12
| | | | | | Add a `From<pack_Type> for crate::Entry` implementation in `dispatcher!()` macro and a default `Entry` pack type in `gen_program!()` for ergonomic program entry handling
* feat(example): add command macro example魏曹先生14 hours7-0/+447
|
* fix(dispatch_tree): emit re-export token stream directly魏曹先生14 hours1-5/+8
|
* feat(attr): allow #[command] on functions with no args param魏曹先生14 hours1-20/+42
| | | | | | | Previously, #[command] required at least one owned parameter for args injection. Now, if the first parameter is a reference or there are no parameters, a synthetic entry parameter is inserted so the function can still be used with #[chain].
* feat(macros): wrap gen_program output in a hidden module魏曹先生15 hours4-39/+96
| | | | | | Move pathf type resolution from `program_final_gen` to `gen_program` and isolate generated code inside `__this_program_impl` to prevent namespace pollution
* refactor(macros): move pathf include from gen_program into魏曹先生15 hours2-10/+12
| | | | program_final_gen
* feat(mingling_macros, mingling_pathf): add `#[command]` attribute macro魏曹先生15 hours8-0/+559
| | | | | | | | | | | | | 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.
* refactor(pathf): move type resolution from compile-time to build-time魏曹先生15 hours6-146/+67
|
* refactor(dispatcher): replace custom dotted-to-pascal helper with魏曹先生17 hours1-19/+1
| | | | `just_fmt::pascal_case!`
* feat(picker): add `unwrap_or_default`, `unwrap_or_else`, and `expect`魏曹先生22 hours1-0/+49
| | | | for tuples
* feat(picker): add convenience methods to PickArgParsed tuples魏曹先生23 hours2-0/+57
| | | | | Add `unwrap_or_default`, `unwrap_or_else`, and `expect` methods to reduce boilerplate when working with parsed argument tuples
* docs: update arg-picker version in README魏曹先生23 hours1-1/+1
|
* feat(picker): add filesystem-aware path value types魏曹先生23 hours5-0/+500
| | | | | | | | | Add `FilePath`, `NoFilePath`, `DirPath`, `NoDirPath`, `SymlinkPath`, `NoSymlinkPath`, `NoPath`, and `RecursiveFiles` wrapper types with filesystem validation at parse time. Each type implements `SinglePickable` and provides standard conversions via `From`, `AsRef`, `Deref`, and `DerefMut`.
* chore(changelog): mark release 0.3.0 as released on 2026-07-27魏曹先生36 hours1-2/+2
|
* chore: move config files to .config directory0.3.0魏曹先生36 hours4-4/+4
|
* chore: rename GETTING_STARTED.md to GETTING-STARTED.md魏曹先生36 hours2-1/+1
|
* docs: add The Command Macro design document魏曹先生37 hours2-0/+170
|
* docs(sidebar): archive resolved issues with _ prefix魏曹先生38 hours4-9/+21
| | | | | | Archive three resolved issues by renaming files with an _ prefix and adding archival note banners
* chore: bump arg-picker and arg-picker-macros to v0.1.1picker-0.1.1魏曹先生38 hours7-10/+10
|
* feat: resolve all workspace inheritance in package-all tool魏曹先生38 hours1-111/+350
| | | | | | | | | | | | Replace the old path-to-version patching with full workspace inheritance resolution. Each member's Cargo.toml now has all `workspace = true` references inlined from `[workspace.package]` and `[workspace.dependencies]`, and the root Cargo.toml is stripped of those workspace sections to become a pure virtual manifest. Post-package extraction also adds a bare `[workspace]` to each standalone crate so it remains a valid workspace root.
* chore(picker): removed unused module `corebind.rs`魏曹先生3 days1-2/+0
|
* fix: gate `pack_err_structural` on both `structural_renderer` and魏曹先生3 days1-1/+1
| | | | `extra_macros`
* fix(ci): capture stderr in cargo ci steps魏曹先生3 days2-4/+4
|
* feat(macros): split monolith into one-macro-per-file modules魏曹先生3 days34-1280/+1385
|
* feat(arg_picker): add SinglePickable impls for network and path types魏曹先生3 days4-0/+99
| | | | | Implement SinglePickable for IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6, and PathBuf
* docs(changelog): fix item numbering in changelog魏曹先生4 days1-4/+3
|
* feat(readme): update roadmap to reflect completed tasks魏曹先生5 days1-2/+2
| | | | | Mark the Mingling Linter and picker argument parser as completed in the project roadmap
* refactor(once_exec, repl_exec): unify sync and async execution paths魏曹先生5 days2-211/+109
|
* feat(core): consolidate sync/async exec pipeline with `might_be_async`魏曹先生5 days2-173/+14
| | | | | | | Replace manual `#[cfg(feature = "async")]` code duplication in `exec` and `exec_with_args` with `#[might_be_async::func]` annotations and `might_be_async::invoke!()` wrappers, reducing two code paths to one.
* feat(core): add RendererInvoker and ChainInvoker types魏曹先生5 days4-0/+323
|
* feat: add `might_be_async` dependency and update lockfiles魏曹先生5 days36-54/+4408
| | | | | | | Introduce `might_be_async` as a workspace dependency, add it to `mingling_core`, and regenerate all Cargo.lock files accordingly. Multiple examples and test packages also pick up a newly transitive `equivalent` crate.
* docs: enable missing_docs lint and add doc comments to comp.rs魏曹先生5 days2-2/+55
|
* refactor(core): rename ResourceMarker methods to internal names魏曹先生5 days4-26/+51
|
* feat(build): add build script to generate fake Cargo.toml魏曹先生6 days1-0/+13
|
* chore: remove deprecated `cmd_mlint_install` module魏曹先生6 days5-471/+5
|
* feat: add workspace-level root package魏曹先生6 days3-0/+11
| | | | | Add a root package `mingling-workspace` with an empty `main.rs` to improve Cargo workspace compatibility.
* fix: use `rust-analyzer.toml` instead of hardcoded `.rust-analyzer.toml`魏曹先生6 days1-3/+2
|
* ci(ci): Move .temp cleanup closer to deployment step魏曹先生6 days1-3/+5
|
* feat(ci): clean .temp directory before building API docs魏曹先生6 days1-0/+3
|
* fix(docs): rename `builds` feature to `build` in examples魏曹先生6 days4-7/+18
|
* feat(core): rename `builds` feature to `build`魏曹先生6 days19-107/+127
| | | | | | | Replace the `builds` feature with `build` across the crate, keeping a backward-compatible alias for the old name. Update all internal visibility from `#[doc(hidden)] pub mod` to `pub(crate) mod` and reorganize the `__private` module into a dedicated `private.rs`.
* chore: mark clippy.sh as executable魏曹先生6 days1-0/+0
|
* feat(ci): add API documentation build step魏曹先生6 days1-0/+11
|
* refactor(global_resource): break long generic impl into multi-line where魏曹先生6 days1-1/+4
| | | | clause
* feat(linter): set exit code to 1 when config already exists魏曹先生6 days1-1/+4
|
* feat(linter): add `lint-install` subcommand for rust-analyzer setup魏曹先生6 days8-10/+555
|
* feat(doc): replace deploy-api-docs script with direct cargo commands魏曹先生7 days5-10/+25
|
* feat: add `doc_cfg` feature for docs.rs build魏曹先生7 days1-0/+1
|
* chore: rename `doc_nightly` scripts to `doc-nightly`魏曹先生7 days2-0/+0
|