aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
Commit message (Collapse)AuthorAgeFilesLines
* feat(any): make `Grouped` trait unsafe and encapsulate `AnyOutput`魏曹先生3 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魏曹先生3 days1-0/+10
|
* feat(macros): add `#[mlint(...)]` marker attribute macro魏曹先生4 days1-0/+13
|
* feat(macros): add render_route macro and renderify attribute for render魏曹先生4 days1-0/+38
| | | | pipeline error routing
* feat(pathf): add foreign item support with is_foreign flag魏曹先生4 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魏曹先生4 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魏曹先生4 days1-1/+8
| | | | patterns
* feat(core): add From impl for RenderResult with closure coercion魏曹先生4 days1-0/+21
|
* feat(core, macros): add r_append! macro and RenderResult::append_other魏曹先生4 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魏曹先生4 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魏曹先生4 days1-0/+4
|
* feat(core)!: replace RenderResult with buffered output model魏曹先生4 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)`魏曹先生5 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魏曹先生5 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魏曹先生5 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魏曹先生5 days1-0/+26
|
* chore(macros): reorganize module hierarchy in mingling_macros魏曹先生5 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魏曹先生5 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魏曹先生5 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魏曹先生5 days1-1/+12
|
* feat(macros:chain): accept any return type in chain functions魏曹先生6 days1-0/+27
|
* feat(setups): refactor picker subsystem with new argument manipulation魏曹先生7 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魏曹先生7 days1-0/+2
|
* feat(macros): relax `#[help]` return type to accept `Into<RenderResult>`魏曹先生7 days1-0/+20
|
* ix(macros)!: require explicit `.into()` on chain function return values魏曹先生7 days1-0/+31
|
* feat(macros): allow `#[renderer]` to accept any return type魏曹先生7 days1-0/+25
|
* feat(core): add multiple From implementations for RenderResult魏曹先生7 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`魏曹先生7 days1-167/+167
|
* docs: add changelog entries for core/macros features and picker system魏曹先生8 days1-0/+36
|
* docs(changelog): document RenderResult::new and removed r_print macros魏曹先生13 days1-2/+25
|
* chore: add Release 0.3.0 entry to changelog魏曹先生13 days1-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
|
* feat(macros): simplify ResultEmpty to a unit struct魏曹先生2026-06-261-0/+8
|
* refactor(general_renderer): rename to structural_renderer魏曹先生2026-06-261-16/+35
|
* feat(core): decouple structured output from Groupped trait魏曹先生2026-06-261-0/+10
| | | | | | | Introduce `StructuralData` sealed trait and `pack_structural!` / `group_structural!` / `derive(StructuralData)` macros to control structured rendering separately from grouping. `Groupped` no longer requires `Serialize`.
* fix(dispatch_tree): use proper snake_case for dispatcher static names魏曹先生2026-06-251-0/+2
| | | | | | | | | Fix the static name generation for dispatch tree nodes to use a correct snake_case conversion instead of a simple `.` to `_` replacement. Also correct the `__comp` completion dispatcher name from triple underscore to double underscore, resolving a mismatch between `register_dispatcher!` and `program_comp_gen`
* Redesign hook system with structured info types and ProgramControls魏曹先生2026-06-241-0/+40
|
* Add entry-str dedup and registry cleanup in final gen魏曹先生2026-06-231-0/+2
|
* Add aliased syntax to `group!` macro魏曹先生2026-06-231-2/+11
| | | | | Allow `group!(Alias = TypePath)` to create a type alias and use the alias name as the enum variant, enabling more descriptive naming