aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* feat(linter): add aliases for Rust Analyzer lint commands魏曹先生23 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魏曹先生23 hours1-0/+1
|
* feat(lint): add non_mingling_naming_style lint with auto-fix suggestions魏曹先生23 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魏曹先生24 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魏曹先生24 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魏曹先生25 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魏曹先生25 hours1-4/+14
| | | | Group dependencies by purpose with inline comments for clarity
* feat(mling): add linter framework with async support and registry魏曹先生25 hours24-31/+2746
| | | | generation
* fix: qualify `render` call as `ProgramCollect::render` in error path魏曹先生30 hours1-1/+1
|
* feat(macros): add `#[mlint(...)]` marker attribute macro魏曹先生31 hours3-0/+35
|
* feat(macros): add render_route macro and renderify attribute for render魏曹先生33 hours5-0/+175
| | | | pipeline error routing
* feat(mingling_cli): add metadata and linter commands with cargo analysis魏曹先生34 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魏曹先生34 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魏曹先生34 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魏曹先生34 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魏曹先生35 hours1-1/+8
| | | | patterns
* feat(core): add From impl for RenderResult with closure coercion魏曹先生36 hours2-1/+31
|
* feat(core, macros): add r_append! macro and RenderResult::append_other魏曹先生36 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魏曹先生36 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魏曹先生36 hours2-30/+12
|
* feat(core)!: replace RenderResult with buffered output model魏曹先生37 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魏曹先生47 hours5-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魏曹先生2 days1-0/+4
|
* chore: add missing docs lint and document public API魏曹先生2 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魏曹先生2 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魏曹先生2 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魏曹先生2 days1-5/+29
|
* feat: add docs_rs feature and improve documentation build魏曹先生2 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魏曹先生2 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魏曹先生2 days3-1/+7
|
* feat: add coverage test runner script魏曹先生2 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魏曹先生2 days2-31/+80
|
* docs(readme): update milestone checklist status魏曹先生2 days1-1/+2
|
* docs: migrate renderer examples to buffer macro and update docs魏曹先生2 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)`魏曹先生2 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魏曹先生2 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魏曹先生2 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魏曹先生2 days1-1/+2
| | | | GETTING_STARTED.md
* feat(ci): collect all doc-phase errors before failing魏曹先生2 days1-4/+16
|
* ci(ci): update cache keys to include .run directory and split by job魏曹先生2 days2-8/+8
|
* ci: upload docs test result artifact on failure魏曹先生2 days2-0/+14
|
* docs(guide): replace 'parser' feature with 'picker' in code examples魏曹先生2 days1-6/+9
|
* refactor: generalize config to support arbitrary file paths and globs魏曹先生2 days1-35/+20
|
* docs: update GETTING_STARTED.md to reflect new Picker API魏曹先生2 days1-54/+8
|
* feat(core)!: remove `to_chain` and `to_render` from `Grouped` trait魏曹先生2 days11-37/+39
| | | | | Move routing methods exclusively to the `Routable` trait and update all macro-generated code to reference `Routable` instead of `Grouped`
* feat(routeify): reorder import paths for consistency魏曹先生2 days1-1/+1
|
* docs: update README logo to icon3魏曹先生2 days3-1/+1
|
* feat(routeify): map `?` span to `route!` for tooling support魏曹先生2 days2-2/+31
| | | | | | Use the span of the `?` token when generating the macro invocation in the `#[routeify]` transformation, so that rust-analyzer resolves hover and go-to-definition on `?` to the `route!` macro's documentation