aboutsummaryrefslogtreecommitdiff
path: root/mingling_cli/src/main.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-08-06 17:02:36 +0800
committer魏曹先生 <1992414357@qq.com>2026-08-06 17:02:36 +0800
commitd03b085d40b104ec25bad195f9b6f85f5ec24604 (patch)
tree1b21d6db89091f7618ec3d3c7d04fa1259479774 /mingling_cli/src/main.rs
parentad81b5cd92544fa0f5b21f1536b2a0aa8d7b9127 (diff)
feat(cli): implement `explain` command and add JSON structural rendering
Add a new `explain <LINT>` command that queries the embedded lint registry (generated by `build.rs`) and displays detailed information about a specifoic lint, including its name, title, summary, active-on target, default setting, and author. Enable the `structural_renderer` feature and add `serde`/`serde_json` dependencies to support JSON output rendering for command results.
Diffstat (limited to 'mingling_cli/src/main.rs')
-rw-r--r--mingling_cli/src/main.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/mingling_cli/src/main.rs b/mingling_cli/src/main.rs
index cb41368..da30861 100644
--- a/mingling_cli/src/main.rs
+++ b/mingling_cli/src/main.rs
@@ -7,9 +7,12 @@ use crate::metadata::{
};
use mingling::{
ShellContext, Suggest,
- consts::HELP_FLAG,
+ consts::{HELP_FLAG, JSON_FLAG, JSON_PRETTY_FLAG},
macros::{completion, gen_program, help, suggest},
- setup::{ExitCodeSetup, picker::HelpFlagSetup},
+ setup::{
+ ExitCodeSetup,
+ picker::{HelpFlagSetup, StructuralRendererSetup},
+ },
};
pub mod diagnostic;
@@ -26,6 +29,7 @@ async fn main() {
let mut program = ThisProgram::new();
// Setups
+ program.with_setup(StructuralRendererSetup);
program.with_setup(HelpFlagSetup::default());
program.with_setup(ExitCodeSetup::default());
@@ -50,6 +54,8 @@ pub fn complete_global(_ctx: &ShellContext) -> Suggest {
ARG_ALL_FEATURES: "Enable all features",
ARG_NO_DEFAULT_FEATURES: "Disable default features",
ARG_NO_DEPS: "Do not include dependencies in metadata",
+ JSON_FLAG: "Render results in JSON format",
+ JSON_PRETTY_FLAG: "Render results in pretty JSON format"
}
}