aboutsummaryrefslogtreecommitdiff
path: root/mingling_cli/src/main.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-08-03 20:30:33 +0800
committer魏曹先生 <1992414357@qq.com>2026-08-06 16:59:48 +0800
commit398c2515da10776bbd1b56f8cfb64b63c6a123d8 (patch)
treedf0ec56a9e62096a9a1bf908a9fcab3f4059e1c0 /mingling_cli/src/main.rs
parent815cc96a09b86eb890d6fa36d9afe8ed18afb867 (diff)
feat(cli): add dynamic completion scripts and global help
Enable the dispatch_tree and comp features to generate completion scripts during build and register global help and completion support in the main entry point.
Diffstat (limited to 'mingling_cli/src/main.rs')
-rw-r--r--mingling_cli/src/main.rs19
1 files changed, 16 insertions, 3 deletions
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!();