diff options
| -rw-r--r-- | mingling_cli/Cargo.lock | 1 | ||||
| -rw-r--r-- | mingling_cli/Cargo.toml | 4 | ||||
| -rw-r--r-- | mingling_cli/build.rs | 5 | ||||
| -rw-r--r-- | mingling_cli/help/help.txt | 3 | ||||
| -rw-r--r-- | mingling_cli/src/linter.rs | 23 | ||||
| -rw-r--r-- | mingling_cli/src/main.rs | 19 | ||||
| -rw-r--r-- | mingling_cli/src/metadata.rs | 3 |
7 files changed, 31 insertions, 27 deletions
diff --git a/mingling_cli/Cargo.lock b/mingling_cli/Cargo.lock index 6d390e2..5a0dcd0 100644 --- a/mingling_cli/Cargo.lock +++ b/mingling_cli/Cargo.lock @@ -301,6 +301,7 @@ name = "mingling_core" version = "0.3.0" dependencies = [ "just_fmt 0.2.0", + "just_template", "might_be_async", "mingling_pathf", ] diff --git a/mingling_cli/Cargo.toml b/mingling_cli/Cargo.toml index 9ee8fa0..4dfea20 100644 --- a/mingling_cli/Cargo.toml +++ b/mingling_cli/Cargo.toml @@ -25,7 +25,9 @@ features = [ "extras", "picker", "pathf", + "dispatch_tree", "async", + "comp" ] [build-dependencies.mingling] @@ -33,6 +35,8 @@ path = "../mingling" features = [ "build", "pathf", + "dispatch_tree", + "comp" ] [dependencies] diff --git a/mingling_cli/build.rs b/mingling_cli/build.rs index ec4f208..3ba921b 100644 --- a/mingling_cli/build.rs +++ b/mingling_cli/build.rs @@ -1,4 +1,4 @@ -use mingling::build::analyze_and_build_type_mapping; +use mingling::build::{analyze_and_build_type_mapping, build_comp_scripts}; pub mod pre; @@ -6,6 +6,9 @@ fn main() { // Perform path analysis and build type mapping table analyze_and_build_type_mapping().ok(); + // Generate Mingling CLI Completion Scripts + build_comp_scripts("mingling-cli").unwrap(); + // Generate lint registry pre::gen_mod_file().unwrap(); pre::gen_lint_registry().unwrap(); diff --git a/mingling_cli/help/help.txt b/mingling_cli/help/help.txt index e69de29..85a4fb7 100644 --- a/mingling_cli/help/help.txt +++ b/mingling_cli/help/help.txt @@ -0,0 +1,3 @@ +USAGE: mling [GLOBAL_FLAGS] [COMMAND] [ARGS...] + +GLOBAL_FLAGS: diff --git a/mingling_cli/src/linter.rs b/mingling_cli/src/linter.rs index 859ffc5..8be45c8 100644 --- a/mingling_cli/src/linter.rs +++ b/mingling_cli/src/linter.rs @@ -1,30 +1,11 @@ -use mingling::{ - Program, - macros::{chain, dispatcher, entry, program_setup}, -}; +use mingling::macros::{chain, dispatcher, entry}; -use crate::{ - linter::cmd_mlint::{CMDLint, EntryLint}, - metadata::setup::ResUsingJson, -}; +use crate::{linter::cmd_mlint::EntryLint, metadata::setup::ResUsingJson}; pub mod cmd_mlint; pub mod mlint_attr; pub mod mlint_report; -#[program_setup] -pub fn mingling_linter_setup(program: &mut Program<crate::ThisProgram>) { - program.with_setup(MinglingLinterCommandSetup); -} - -#[program_setup] -pub fn mingling_linter_command_setup(program: &mut Program<crate::ThisProgram>) { - program.with_dispatcher(CMDLint); - program.with_dispatcher(CMDLinterSupportRustAnalyzer); - program.with_dispatcher(CMDLinterSupportRustAnalyzerWithClippy); - program.with_dispatcher(CMDLinterSupportRustAnalyzerWithCheck); -} - // Aliases dispatcher!("ra-lint-clippy", diff --git a/mingling_cli/src/main.rs b/mingling_cli/src/main.rs index c822a12..149093c 100644 --- a/mingling_cli/src/main.rs +++ b/mingling_cli/src/main.rs @@ -1,6 +1,8 @@ -use crate::{linter::MinglingLinterSetup, metadata::MinglingMetadataSetup}; +use crate::metadata::MinglingMetadataSetup; use mingling::{ - macros::gen_program, + ShellContext, Suggest, + consts::HELP_FLAG, + macros::{completion, gen_program, help, suggest}, setup::{ExitCodeSetup, picker::HelpFlagSetup}, }; @@ -20,10 +22,21 @@ async fn main() { program.with_setup(ExitCodeSetup::default()); program.with_setup(MinglingMetadataSetup); - program.with_setup(MinglingLinterSetup); // Exec program.exec_and_exit().await; } +#[help] +pub fn help_global(_: EntryFallback) -> String { + include_str!("../help/help.txt").to_string() +} + +#[completion(EntryFallback)] +pub fn complete_global(_ctx: &ShellContext) -> Suggest { + suggest! { + HELP_FLAG: "Show help messages" + } +} + gen_program!(); diff --git a/mingling_cli/src/metadata.rs b/mingling_cli/src/metadata.rs index 2e7aeef..f11ae36 100644 --- a/mingling_cli/src/metadata.rs +++ b/mingling_cli/src/metadata.rs @@ -4,7 +4,7 @@ use mingling::{ macros::{buffer, group, program_setup, r_println, renderer, renderify}, }; -use crate::metadata::{cmd_metadata::CMDMetadata, setup::CargoMetadataSetup}; +use crate::metadata::setup::CargoMetadataSetup; pub mod cmd_metadata; pub mod setup; @@ -12,7 +12,6 @@ pub mod setup; #[program_setup] pub fn mingling_metadata_setup(program: &mut Program<crate::ThisProgram>) { program.with_setup(CargoMetadataSetup); - program.with_dispatcher(CMDMetadata); } group!(Metadata); |
