aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* refactor(mlint): parallelise lint checks with tokio JoinSet魏曹先生9 hours1-28/+41
| | | | | | Move file I/O and AST parsing into spawn_blocking closures to avoid blocking the async runtime, enabling concurrent processing of multiple Rust source files.
* fix: correct repository path in Cargo.toml filespicker-0.1.0魏曹先生11 hours2-2/+2
| | | | Update repository URLs to use underscore instead of hyphen
* feat(mingling_cli): add wrapper binary and optimize release profile魏曹先生11 hours3-0/+57
| | | | | Add `mling` wrapper binary that delegates to `mingling-cli`, enabling separate binary names while maintaining Cargo conventions.
* chore: remove expanded macro test file魏曹先生30 hours1-1121/+0
|
* feat(mlint): support multiple suggestions per report魏曹先生30 hours3-9/+228
| | | | | | | | | Replace the single optional `suggestion` field with a `Vec<LintSuggestion>` to allow multiple automatic fix suggestions per lint report BREAKING CHANGE: The `suggestion` field has been replaced by `suggestions`
* fix: update placeholder author name in template linter docs魏曹先生31 hours1-1/+1
|
* feat(any): make `Grouped` trait unsafe and encapsulate `AnyOutput`魏曹先生32 hours15-37/+219
| | | | | | | | | | 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魏曹先生33 hours1-0/+10
|
* docs: remove outdated about_lint design doc魏曹先生34 hours1-35/+0
|
* feat(linter): add ResUsingJson flag to rust-analyzer handlers魏曹先生34 hours1-4/+19
|
* feat(linter): add aliases for Rust Analyzer lint commands魏曹先生34 hours1-2/+37
| | | | | | Add dispatcher aliases `ra-lint`, `ra-lint-clippy`, and `ra-lint-check` that forward to the existing linter with preset flags for JSON output and optional checkers
* fix(lint): add missing blank line in test module魏曹先生34 hours1-0/+1
|
* feat(lint): add non_mingling_naming_style lint with auto-fix suggestions魏曹先生34 hours6-26/+454
| | | | | Support file-level lint checks via `check_file` in lint registry template.
* feat(lints): add quote dependency and improve variable name detection魏曹先生35 hours5-48/+42
| | | | | | Use `quote` token stream matching instead of debug formatting to detect variable references in `unnecessary_render_result_creation`, fixing false positives from string-based matching.
* feat: add testing macros and unit tests for linters魏曹先生35 hours4-0/+129
| | | | | | Add `assert_detected!` and `assert_not_detected!` macros to simplify writing lint tests, along with initial test coverage for the unnecessary render result creation linter.
* feat(mlint): support RenderResult::default and ::from detection魏曹先生35 hours2-24/+39
| | | | | | | | | Extend the `unnecessary_render_result_creation` lint to also flag uses of `RenderResult::default()` and `RenderResult::from(...)`, and add `#[derive(Default)]` to `MlintReport` and `MlintLevel` to simplify struct instantiation
* chore(Cargo.toml): reorganize dependencies and add section comments魏曹先生36 hours1-4/+14
| | | | Group dependencies by purpose with inline comments for clarity
* feat(mling): add linter framework with async support and registry魏曹先生36 hours24-31/+2746
| | | | generation
* fix: qualify `render` call as `ProgramCollect::render` in error path魏曹先生41 hours1-1/+1
|
* feat(macros): add `#[mlint(...)]` marker attribute macro魏曹先生42 hours3-0/+35
|
* feat(macros): add render_route macro and renderify attribute for render魏曹先生43 hours5-0/+175
| | | | pipeline error routing
* feat(mingling_cli): add metadata and linter commands with cargo analysis魏曹先生44 hours11-28/+378
| | | | | Introduce `metadata` and `mlint` subcommands, wire up `cargo_metadata` for manifest analysis, and enable procedural macro support in editors
* refactor(chain): replace Into turbofish with Routable::to_chain魏曹先生44 hours1-13/+9
| | | | | | | | Remove the `origin_return_type` parameter and replace the generic `Into` conversion with a direct call to `Routable::<#program_type>::to_chain`. For non-unit returns, also wrap the function call expression in `to_chain()` upfront to satisfy the `ChainProcess<C>` requirement of `__modify_res_and_return_route`.
* feat(pathf): add foreign item support with is_foreign flag魏曹先生45 hours13-115/+202
| | | | | | | | | | 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魏曹先生45 hours8-20/+60
| | | | | | | 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魏曹先生46 hours1-1/+8
| | | | patterns
* feat(core): add From impl for RenderResult with closure coercion魏曹先生47 hours2-1/+31
|
* feat(core, macros): add r_append! macro and RenderResult::append_other魏曹先生47 hours5-0/+145
| | | | | | | 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魏曹先生47 hours5-5/+39
| | | | | Enables method chaining for `with_resource`, `with_dispatcher`, `with_dispatchers`, `with_hook`, and `with_setup`
* fix(core): delegate stdout flushing to RenderResult::std_print魏曹先生47 hours2-30/+12
|
* feat(core)!: replace RenderResult with buffered output model魏曹先生47 hours13-86/+525
| | | | | | | | | | 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.
* fix(patterns): broaden pattern detection to cover both bracketed forms魏曹先生2 days5-5/+8
|
* feat(mingling_cli): add scaffold for CLI tool魏曹先生2 days5-42/+176
| | | | | Add initial project structure for the mingling-cli scaffolding tool, including Cargo manifest and entry point
* feat: remove deprecated mling scaffolding tool魏曹先生2 days35-2343/+1
| | | | | The mling CLI tool is being rewritten, so remove all its source files, resources, and workspace membership to clean up the repository
* fix: conditionally compile pathf_hint based on "pathf" feature魏曹先生3 days1-0/+4
|
* chore: add missing docs lint and document public API魏曹先生3 days20-2/+196
| | | | | | | 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(macros): add compile_error hint when pathf map is missing魏曹先生3 days1-30/+52
| | | | | | Use Option for load_pathf_map return type and emit a descriptive compile_error when the type mapping file cannot be loaded, guiding users to set up build.rs correctly
* feat(arg): add into_info conversion and flag formatting helpers魏曹先生3 days2-24/+82
| | | | | - Move PickerArg-to-PickerArgInfo conversion into an `into_info` method - Add `short_flag()` and `long_flag()` methods to PickerArgInfo
* feat(asset): deprecate with_dispatcher when dispatch_tree is enabled魏曹先生3 days1-5/+29
|
* feat: add docs_rs feature and improve documentation build魏曹先生3 days8-5/+25
| | | | | | | | 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.
* fix(doc): target doc generation at mingling workspace root魏曹先生3 days2-2/+10
| | | | | Use `--manifest-path mingling/Cargo.toml` instead of `--workspace` to avoid generating documentation for unintended root workspace crates
* feat(ci): add coverage test job with cargo-llvm-cov魏曹先生3 days3-1/+7
|
* feat: add coverage test runner script魏曹先生3 days2-0/+110
| | | | | | Add a helper script `.run/src/bin/cov-test.rs` that generates HTML coverage reports using `cargo llvm-cov` and moves the output files to the `docs/cov-test/` directory
* refactor: extract `docs.rs` feature reading into reusable function魏曹先生3 days2-31/+80
|
* docs(readme): update milestone checklist status魏曹先生3 days1-1/+2
|
* docs: migrate renderer examples to buffer macro and update docs魏曹先生3 days23-341/+298
| | | | | | | | 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 days8-8/+288
| | | | | | | | | | | 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魏曹先生3 days5-60/+150
| | | | | | | | | | | 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: add pick_or, pick_or_default, and pick_or_route shorthands魏曹先生3 days3-5/+86
| | | | | | | | | | Remove the `Default` bound from `pick()` and `EntryPicker::pick()`, allowing non-Default types to be used as arguments. Add `IntoPicker::pick_or`, `pick_or_default`, and `pick_or_route` convenience methods for common fallback patterns. Fix token splitting in `arg!` macro to correctly handle angle brackets.
* fix: update import path for StructuralRendererSetup in魏曹先生3 days1-1/+2
| | | | GETTING_STARTED.md