aboutsummaryrefslogtreecommitdiff
path: root/mingling_cli/src
diff options
context:
space:
mode:
Diffstat (limited to 'mingling_cli/src')
-rw-r--r--mingling_cli/src/linter.rs45
-rw-r--r--mingling_cli/src/linter/cmd_lint.rs (renamed from mingling_cli/src/linter/cmd_mlint.rs)8
-rw-r--r--mingling_cli/src/linter/cmd_ra_lints.rs63
-rw-r--r--mingling_cli/src/main.rs2
-rw-r--r--mingling_cli/src/metadata/cmd_metadata.rs10
-rw-r--r--mingling_cli/src/pkg_mgr.rs0
-rw-r--r--mingling_cli/src/proj_mgr.rs0
7 files changed, 83 insertions, 45 deletions
diff --git a/mingling_cli/src/linter.rs b/mingling_cli/src/linter.rs
index 8be45c8..45111b6 100644
--- a/mingling_cli/src/linter.rs
+++ b/mingling_cli/src/linter.rs
@@ -1,45 +1,4 @@
-use mingling::macros::{chain, dispatcher, entry};
-
-use crate::{linter::cmd_mlint::EntryLint, metadata::setup::ResUsingJson};
-
-pub mod cmd_mlint;
+pub mod cmd_lint;
+pub mod cmd_ra_lints;
pub mod mlint_attr;
pub mod mlint_report;
-
-// 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")
-}
diff --git a/mingling_cli/src/linter/cmd_mlint.rs b/mingling_cli/src/linter/cmd_lint.rs
index 1dfd02b..57a78ad 100644
--- a/mingling_cli/src/linter/cmd_mlint.rs
+++ b/mingling_cli/src/linter/cmd_lint.rs
@@ -2,12 +2,18 @@ use crate::linter::mlint_report::{MlintReport, StateLintReports};
use cargo_metadata::Metadata;
use mingling::LazyRes;
use mingling::consts::REMAINS;
-use mingling::macros::{arg, chain, dispatcher, pack};
+use mingling::macros::{arg, chain, dispatcher, metadata, pack};
+use mingling::metadata::Description;
use mingling::picker::EntryPicker;
use tokio::task::JoinSet;
dispatcher!("lint", CMDLint => EntryLint);
+#[metadata(EntryLint)]
+pub fn desc_lint() -> Description {
+ "Mingling Linter".to_string().into()
+}
+
/// Main linting function that processes all packages in the metadata.
///
/// Iterates through all packages and their targets (e.g., binaries, libraries, tests),
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()
+}
diff --git a/mingling_cli/src/main.rs b/mingling_cli/src/main.rs
index b9164db..cb41368 100644
--- a/mingling_cli/src/main.rs
+++ b/mingling_cli/src/main.rs
@@ -18,6 +18,8 @@ pub mod linter;
pub mod lints;
pub mod message;
pub mod metadata;
+pub mod pkg_mgr;
+pub mod proj_mgr;
#[tokio::main]
async fn main() {
diff --git a/mingling_cli/src/metadata/cmd_metadata.rs b/mingling_cli/src/metadata/cmd_metadata.rs
index 18241a2..3ee9f09 100644
--- a/mingling_cli/src/metadata/cmd_metadata.rs
+++ b/mingling_cli/src/metadata/cmd_metadata.rs
@@ -1,13 +1,21 @@
use cargo_metadata::Metadata;
use mingling::{
LazyRes,
- macros::{chain, dispatcher, pack},
+ macros::{chain, dispatcher, metadata, pack},
+ metadata::Description,
};
use crate::metadata::setup::ResMetadata;
dispatcher!("metadata");
+#[metadata(EntryMetadata)]
+pub fn desc_metadata() -> Description {
+ "Check your workspace metadata using 'cargo metadata'"
+ .to_string()
+ .into()
+}
+
pack!(ResultMetadata = ResMetadata);
#[chain]
diff --git a/mingling_cli/src/pkg_mgr.rs b/mingling_cli/src/pkg_mgr.rs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/mingling_cli/src/pkg_mgr.rs
diff --git a/mingling_cli/src/proj_mgr.rs b/mingling_cli/src/proj_mgr.rs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/mingling_cli/src/proj_mgr.rs