diff options
Diffstat (limited to 'mingling_cli/src')
| -rw-r--r-- | mingling_cli/src/linter.rs | 45 | ||||
| -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.rs | 63 | ||||
| -rw-r--r-- | mingling_cli/src/main.rs | 2 | ||||
| -rw-r--r-- | mingling_cli/src/metadata/cmd_metadata.rs | 10 | ||||
| -rw-r--r-- | mingling_cli/src/pkg_mgr.rs | 0 | ||||
| -rw-r--r-- | mingling_cli/src/proj_mgr.rs | 0 |
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 |
