aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
Commit message (Collapse)AuthorAgeFilesLines
* feat(macros): split monolith into one-macro-per-file modules魏曹先生46 hours1-4/+5
|
* docs(changelog): fix item numbering in changelog魏曹先生3 days1-4/+3
|
* feat(core): consolidate sync/async exec pipeline with `might_be_async`魏曹先生5 days1-0/+10
| | | | | | | 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 days1-0/+50
|
* refactor(core): rename ResourceMarker methods to internal names魏曹先生5 days1-0/+10
|
* feat(core): rename `builds` feature to `build`魏曹先生6 days1-0/+7
| | | | | | | 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`.
* docs(core): add Clone and Eq derives to RenderResult魏曹先生6 days1-0/+7
|
* feat(any): make `Grouped` trait unsafe and encapsulate `AnyOutput`魏曹先生7 days1-0/+35
| | | | | | | | | | 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.
* docs(changelog): add Mingling 0.3.0 release notes魏曹先生7 days1-0/+10
|
* feat(macros): add `#[mlint(...)]` marker attribute macro魏曹先生7 days1-0/+13
|
* feat(macros): add render_route macro and renderify attribute for render魏曹先生7 days1-0/+38
| | | | pipeline error routing
* feat(pathf): add foreign item support with is_foreign flag魏曹先生8 days1-0/+8
| | | | | | | | | | Add `AnalyzeItem::foreign()` and `AnalyzeItem::local()` constructors to distinguish items resolved via `use` imports from local definitions. Update `GroupPattern` to collect use imports at file and module levels, resolving `group!(TypeName)` against them. Migrate all pattern implementations to use the new constructors, and adjust `type_mapping_builder` to skip the file's own module prefix for foreign items.
* feat(core): add generic parameter `C` to `StructuralData` trait魏曹先生8 days1-0/+20
| | | | | | | Make `StructuralData` and `StructuralDataSealed` generic over a program collector type to bypass the orphan rule for `group_structural!`. This enables external types to implement `StructuralData<crate::ThisProgram>` without violating coherence.
* fix: detect both opening and closing bracket forms for attribute macro魏曹先生8 days1-1/+8
| | | | patterns
* feat(core): add From impl for RenderResult with closure coercion魏曹先生8 days1-0/+21
|
* feat(core, macros): add r_append! macro and RenderResult::append_other魏曹先生8 days1-0/+8
| | | | | | | 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): return `&mut Self` from builder methods魏曹先生8 days1-0/+26
| | | | | Enables method chaining for `with_resource`, `with_dispatcher`, `with_dispatchers`, `with_hook`, and `with_setup`
* fix(core): delegate stdout flushing to RenderResult::std_print魏曹先生8 days1-0/+4
|
* feat(core)!: replace RenderResult with buffered output model魏曹先生8 days1-0/+44
| | | | | | | | | | 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.
* feat(macros): add `#[buffer]` attribute and re-export `r_print!(ln)`魏曹先生8 days1-4/+17
| | | | | | | | | | | 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(macros): preserve user function as standalone item in codegen魏曹先生8 days1-0/+10
| | | | | | | | | | | Refactor #[chain], #[renderer], #[help], and #[completion] macros to keep the original user function as a named item instead of inlining its body. Trait method implementations now call the original function by name, injecting resources from the application context. This improves debugging (stack traces reference user function names), error messages, and macro expansion clarity.
* feat(core)!: remove `to_chain` and `to_render` from `Grouped` trait魏曹先生9 days1-0/+19
| | | | | 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魏曹先生9 days1-0/+26
|
* chore(macros): reorganize module hierarchy in mingling_macros魏曹先生9 days1-0/+13
| | | | | | Restructure flat module layout into logical directories (attr/, derive/, func/, systems/, extensions/, utils.rs). Tighten internal function visibility to pub(crate). All public API signatures remain unchanged.
* feat(macros): add extension point mechanism for attribute macros魏曹先生9 days1-0/+6
| | | | | | | Implement an `extensions` module in `mingling_macros` that allows attribute macros to accept extension identifiers (e.g., `routeify`) which are re-dispatched as outer attributes before the core macro logic runs, enabling extensibility without modifying existing macros
* feat(macros): update `route!` to use `Routable` trait for error routing魏曹先生9 days1-1/+7
| | | | | | | Add `Routable` implementation for `ChainProcess<ThisProgram>` to enable direct routing of chain process values through the `route!` macro without double-wrapping, improving semantics and flexibility of error conversion
* fix!: rename `Groupped` to `Grouped` across the codebase魏曹先生9 days1-1/+12
|
* feat(macros:chain): accept any return type in chain functions魏曹先生10 days1-0/+27
|
* feat(setups): refactor picker subsystem with new argument manipulation魏曹先生11 days1-0/+23
| | | | | | | | | | API Refactor six setup types into `mingling::setups::picker` to use chained `PickerArg<Flag>` parsing, replacing direct `global_argument` access. Add `get_args_mut`, `take_args`, and `replace_args` to `Program` for enhanced argument control. These changes are gated behind the `picker` feature, with legacy implementations preserved when the feature is off.
* fix(core)!: conditionally override exit code in ExitCodeSetup魏曹先生11 days1-0/+2
|
* feat(macros): relax `#[help]` return type to accept `Into<RenderResult>`魏曹先生11 days1-0/+20
|
* ix(macros)!: require explicit `.into()` on chain function return values魏曹先生11 days1-0/+31
|
* feat(macros): allow `#[renderer]` to accept any return type魏曹先生11 days1-0/+25
|
* feat(core): add multiple From implementations for RenderResult魏曹先生11 days1-0/+8
| | | | | Implement `From<()>`, integer types, String, &String, and &str to allow renderers to return simple values directly
* refactor: rename `mingling_picker` to `arg_picker`魏曹先生11 days1-167/+167
|
* docs: add changelog entries for core/macros features and picker system魏曹先生11 days1-0/+36
|
* docs(changelog): document RenderResult::new and removed r_print macros魏曹先生2026-07-111-2/+25
|
* chore: add Release 0.3.0 entry to changelog魏曹先生2026-07-111-0/+21
|
* chore: bump version to 0.2.2魏曹先生2026-07-101-128/+151
|
* chore: fix indentation in CHANGELOG.md魏曹先生2026-07-021-127/+127
|
* docs(changelog): prepare 0.2.1 release and add unreleased section0.2.1魏曹先生2026-07-021-3/+24
|
* fix(macros): fix false positives in entry_has_variant substring matching魏曹先生2026-07-021-3/+9
|
* docs(changelog): polish markdown formatting and update release entries魏曹先生2026-06-301-13/+34
|
* feat(pathf): add build-time type path resolution system魏曹先生2026-06-281-0/+41
| | | | | | | Add `mingling_pathf` sub-crate and `pathf` feature for automatic resolution of Mingling type module paths at build time. Scans source files, identifies macro invocations via pattern matchers, and generates mapping files consumed by `gen_program!()`.
* chore: fix markdown formatting in CHANGELOG魏曹先生2026-06-281-1/+1
|
* docs(changelog): restructure changelog with TOC and contributor魏曹先生2026-06-281-3/+35
| | | | guidelines
* docs(changelog): standardize bracket formatting in CHANGELOG魏曹先生2026-06-281-140/+140
|
* feat(mingling): add directory environment resources and setup魏曹先生2026-06-271-0/+17
| | | | | Add four new resource types for common directory paths and a convenience setup struct that registers all of them at once.
* feat(macros): add async mutable resource injection for `#[chain]`魏曹先生2026-06-271-0/+16
| | | | | | | Support `&mut T` resource parameters in async chain functions by using an extract-store pattern that avoids holding mutable borrows across await points. Remove the previous compile-time rejection of this combination.
* fix(core): respect exit code when render output is suppressed魏曹先生2026-06-271-0/+5
|