aboutsummaryrefslogtreecommitdiff
path: root/mingling_cli/src/linter/cmd_ra_lints.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-08-04 20:40:10 +0800
committer魏曹先生 <1992414357@qq.com>2026-08-04 20:40:10 +0800
commit9989307f16bd924f835f3671ee8d846b6f080cd3 (patch)
tree11a52fb1d6ccf63f7363e4213ba56f9545b0abc8 /mingling_cli/src/linter/cmd_ra_lints.rs
parente3f9a5adb1d57a5b9c60606961f9b18f0fb2639b (diff)
refactor(linter): move ra lint commands to separate modulewip/mingling-cli-ux
Diffstat (limited to 'mingling_cli/src/linter/cmd_ra_lints.rs')
-rw-r--r--mingling_cli/src/linter/cmd_ra_lints.rs63
1 files changed, 63 insertions, 0 deletions
diff --git a/mingling_cli/src/linter/cmd_ra_lints.rs b/mingling_cli/src/linter/cmd_ra_lints.rs
new file mode 100644
index 0000000..733d611
--- /dev/null
+++ b/mingling_cli/src/linter/cmd_ra_lints.rs
@@ -0,0 +1,63 @@
+use mingling::{
+ macros::{chain, dispatcher, entry, metadata},
+ metadata::Description,
+};
+
+use crate::{linter::cmd_lint::EntryLint, metadata::setup::ResUsingJson};
+
+// Aliases
+
+dispatcher!("ra-lint-clippy",
+ CMDLinterSupportRustAnalyzerWithClippy => EntryLinterSupportRustAnalyzerWithClippy
+);
+
+dispatcher!("ra-lint-check",
+ CMDLinterSupportRustAnalyzerWithCheck => EntryLinterSupportRustAnalyzerWithCheck
+);
+
+dispatcher!("ra-lint",
+ CMDLinterSupportRustAnalyzer => EntryLinterSupportRustAnalyzer
+);
+
+#[chain]
+pub fn handle_ra_lint(_: EntryLinterSupportRustAnalyzer, use_json: &mut ResUsingJson) -> EntryLint {
+ use_json.using = true;
+ entry!("--message-format=json")
+}
+
+#[chain]
+pub fn handle_ra_lint_check(
+ _: EntryLinterSupportRustAnalyzerWithCheck,
+ use_json: &mut ResUsingJson,
+) -> EntryLint {
+ use_json.using = true;
+ entry!("--message-format=json", "--with-checker=cargo,check")
+}
+
+#[chain]
+pub fn handle_ra_lint_clippy(
+ _: EntryLinterSupportRustAnalyzerWithClippy,
+ use_json: &mut ResUsingJson,
+) -> EntryLint {
+ use_json.using = true;
+ entry!("--message-format=json", "--with-checker=cargo,clippy")
+}
+
+#[metadata(EntryLinterSupportRustAnalyzer)]
+pub fn desc_ra_lint() -> Description {
+ "Run `mling lint` and output the results".to_string().into()
+}
+
+#[metadata(EntryLinterSupportRustAnalyzerWithCheck)]
+pub fn desc_ra_lint_check() -> Description {
+ "Run `mling lint` and `cargo check`, and output the combined results"
+ .to_string()
+ .into()
+}
+
+#[metadata(EntryLinterSupportRustAnalyzerWithClippy)]
+pub fn desc_ra_lint_clippy() -> Description {
+ "Run `mling lint` and `cargo clippy`, and output the combined results"
+ .to_string()
+ .into()
+}