From 60251c1432affe217f05319fd43e3dcfba8947de Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sat, 8 Aug 2026 12:22:30 +0800 Subject: refactor: migrate renderers to RenderResult and stdout macros Replace buffer-based renderers with explicit RenderResult returns and use cargo-styled output macros for consistency. --- mingling_cli/src/linter/cmd_explain.rs | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'mingling_cli/src/linter/cmd_explain.rs') diff --git a/mingling_cli/src/linter/cmd_explain.rs b/mingling_cli/src/linter/cmd_explain.rs index d1758e1..5346255 100644 --- a/mingling_cli/src/linter/cmd_explain.rs +++ b/mingling_cli/src/linter/cmd_explain.rs @@ -1,6 +1,6 @@ -use crate::{Next, linter::registry::ResLintRegistry}; +use crate::{Next, eprintln_cargo, linter::registry::ResLintRegistry}; use mingling::{ - Grouped, LazyRes, Routable, ShellContext, Suggest, SuggestItem, + Grouped, LazyRes, RenderResult, Routable, ShellContext, Suggest, SuggestItem, macros::{ arg, buffer, chain, completion, dispatcher, metadata, pack, pack_err, r_println, renderer, routeify, @@ -71,22 +71,29 @@ pub fn render_explain_lint(r: ResultExplainLint) { r_println!("{}", r.summary); } -#[renderer(buffer)] -pub fn render_error_no_explain_lint_provided(_: ErrorNoExplainLintProvided) { - r_println!("No lint name provided"); - r_println!(""); - r_println!("Usage: mling explain "); +#[renderer] +pub fn render_error_no_explain_lint_provided(_: ErrorNoExplainLintProvided) -> RenderResult { + let mut r = RenderResult::new(); + eprintln_cargo!(r, "No lint name provided"); + r_println!(r, ""); + r_println!(r, "Usage: mling explain "); + r } -#[renderer(buffer)] -pub fn render_error_no_such_lint(err: ErrorNoSuchLint, registry: &mut LazyRes) { +#[renderer] +pub fn render_error_no_such_lint( + err: ErrorNoSuchLint, + registry: &mut LazyRes, +) -> RenderResult { + let mut r = RenderResult::new(); let registry = registry.get_ref(); - r_println!("No such lint: \"{}\"", err.info); - r_println!(""); - r_println!("Available lints:"); + eprintln_cargo!(r, "No such lint: \"{}\"", err.info); + r_println!(r, ""); + r_println!(r, "Available lints:"); for entry in registry.lints.iter() { - r_println!(" {}", entry.name); + r_println!(r, " {}", entry.name); } + r } #[completion(EntryExplain)] -- cgit