aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/_zh_CN/pages/1-getting-started.md4
-rw-r--r--docs/_zh_CN/pages/8-setup-and-resources.md6
-rw-r--r--docs/_zh_CN/pages/other/features.md4
-rw-r--r--docs/dev/pages/issues/the-shit-time.md40
-rw-r--r--docs/pages/1-getting-started.md4
-rw-r--r--docs/pages/8-setup-and-resources.md6
-rw-r--r--docs/pages/other/features.md5
-rw-r--r--docs/res/guide.txt2
8 files changed, 56 insertions, 15 deletions
diff --git a/docs/_zh_CN/pages/1-getting-started.md b/docs/_zh_CN/pages/1-getting-started.md
index 2fca931..6aa6229 100644
--- a/docs/_zh_CN/pages/1-getting-started.md
+++ b/docs/_zh_CN/pages/1-getting-started.md
@@ -13,7 +13,7 @@ cd my-cli
```toml
[dependencies.mingling]
-version = "0.3.0"
+version = "0.4.0"
features = []
```
@@ -25,7 +25,7 @@ features = []
```toml
[dependencies.mingling]
-version = "0.3.0"
+version = "0.4.0"
features = [
"parser",
"comp",
diff --git a/docs/_zh_CN/pages/8-setup-and-resources.md b/docs/_zh_CN/pages/8-setup-and-resources.md
index 9ed9894..79d1cb5 100644
--- a/docs/_zh_CN/pages/8-setup-and-resources.md
+++ b/docs/_zh_CN/pages/8-setup-and-resources.md
@@ -11,11 +11,12 @@
// Features: ["extras"]
@@@use mingling::macros::program_setup;
@@@use mingling::Program;
+@@@use mingling::Verbosity;
#[program_setup]
fn my_setup(program: &mut Program<ThisProgram>) {
// 从参数中提取全局标志
program.global_flag(["-v", "--verbose"], |program| {
- program.stdout_setting.verbose = true;
+ program.stdout_setting.verbosity = Verbosity::Verbose;
});
}
@@@
@@ -42,11 +43,12 @@ Setup 里最常用的操作就是提取全局参数。Mingling 提供了几个
// Features: ["extras"]
@@@use mingling::macros::program_setup;
@@@use mingling::Program;
+@@@use mingling::Verbosity;
#[program_setup]
fn my_setup(program: &mut Program<ThisProgram>) {
// 布尔标志
program.global_flag(["-v", "--verbose"], |program| {
- program.stdout_setting.verbose = true;
+ program.stdout_setting.verbosity = Verbosity::Verbose;
});
// 带值的参数
diff --git a/docs/_zh_CN/pages/other/features.md b/docs/_zh_CN/pages/other/features.md
index 2d65e47..f307e4e 100644
--- a/docs/_zh_CN/pages/other/features.md
+++ b/docs/_zh_CN/pages/other/features.md
@@ -195,7 +195,7 @@ fn handle_state_prev1(_p: StatePrev1) -> Next {
```rust
// Features: ["extras"]
-use mingling::{macros::program_setup, Program};
+use mingling::{ErrorOutput, macros::program_setup, Program};
fn main() {
let mut program = ThisProgram::new();
@@ -206,7 +206,7 @@ fn main() {
#[program_setup]
fn no_error_setup(program: &mut Program<ThisProgram>) {
program.global_flag(["--no-error"], |program| {
- program.stdout_setting.error_output = false;
+ program.stdout_setting.error_output = ErrorOutput::Hide;
});
}
```
diff --git a/docs/dev/pages/issues/the-shit-time.md b/docs/dev/pages/issues/the-shit-time.md
index ece670e..4c25e8f 100644
--- a/docs/dev/pages/issues/the-shit-time.md
+++ b/docs/dev/pages/issues/the-shit-time.md
@@ -48,7 +48,7 @@ fn complete_fallback(_ctx: &ShellContext) -> Suggest {
---
-## Why can't I register descriptions for commands?
+## Why can't I register descriptions for commands? (Solved)
(completion) (dispatcher)
@@ -109,3 +109,41 @@ fn desc_add(_ctx: &ShellContext) -> Suggest {
// Match the corresponding function using enum values inside ThisProgram
gen_program!()
```
+
+Final implementation:
+
+`#[metadata]` registers a `Description` for each entry, and `gen_program!()` collects them. During completion, when a subcommand suggestion is generated, its owning entry's `Description` is resolved via the node path and attached as the suggestion's description text.
+
+```rust
+use mingling::{
+ ShellContext, Suggest,
+ macros::{command, completion, gen_program, metadata, suggest},
+ metadata::Description,
+ setup::picker::BasicProgramSetup,
+};
+
+fn main() {
+ let mut program = ThisProgram::new();
+ program.with_setup(BasicProgramSetup);
+ program.with_dispatcher(CMDCompletion);
+ program.with_dispatcher(CMDThanks);
+ program.exec_and_exit();
+}
+
+#[command]
+pub fn thanks() {
+ println!("thanks!");
+}
+
+#[completion(EntryThanks)]
+pub fn complete_thanks(_ctx: &ShellContext) -> Suggest {
+ suggest! { "alice", "bob" }
+}
+
+#[metadata(EntryThanks)]
+pub fn desc_thanks() -> Description {
+ Description::new("Thanks someone")
+}
+
+gen_program!();
+```
diff --git a/docs/pages/1-getting-started.md b/docs/pages/1-getting-started.md
index 8c81100..443ed74 100644
--- a/docs/pages/1-getting-started.md
+++ b/docs/pages/1-getting-started.md
@@ -13,7 +13,7 @@ Add the following to `Cargo.toml`:
```toml
[dependencies.mingling]
-version = "0.3.0"
+version = "0.4.0"
features = []
```
@@ -25,7 +25,7 @@ Some features **directly affect the entire lifecycle behavior**, so you need to
```toml
[dependencies.mingling]
-version = "0.3.0"
+version = "0.4.0"
features = [
"parser",
"comp",
diff --git a/docs/pages/8-setup-and-resources.md b/docs/pages/8-setup-and-resources.md
index 12c7610..ae9e18c 100644
--- a/docs/pages/8-setup-and-resources.md
+++ b/docs/pages/8-setup-and-resources.md
@@ -11,11 +11,12 @@ When a program needs to do some init work at startup—like parsing global args
// Features: ["extras"]
@@@use mingling::macros::program_setup;
@@@use mingling::Program;
+@@@use mingling::Verbosity;
#[program_setup]
fn my_setup(program: &mut Program<ThisProgram>) {
// Extract global flag from args
program.global_flag(["-v", "--verbose"], |program| {
- program.stdout_setting.verbose = true;
+ program.stdout_setting.verbosity = Verbosity::Verbose;
});
}
@@@
@@ -42,11 +43,12 @@ The most common use of Setup is extracting global args. Mingling provides a few
// Features: ["extras"]
@@@use mingling::macros::program_setup;
@@@use mingling::Program;
+@@@use mingling::Verbosity;
#[program_setup]
fn my_setup(program: &mut Program<ThisProgram>) {
// Boolean flag
program.global_flag(["-v", "--verbose"], |program| {
- program.stdout_setting.verbose = true;
+ program.stdout_setting.verbosity = Verbosity::Verbose;
});
// Flag with a value
diff --git a/docs/pages/other/features.md b/docs/pages/other/features.md
index 55b6cc8..ac9d5db 100644
--- a/docs/pages/other/features.md
+++ b/docs/pages/other/features.md
@@ -63,7 +63,6 @@ features = ["build_full"]
# Feature Details
-
## Feature `all_serde_fmt`
**Description:**
@@ -196,7 +195,7 @@ fn handle_state_prev1(_p: StatePrev1) -> Next {
```rust
// Features: ["extras"]
-use mingling::{macros::program_setup, Program};
+use mingling::{ErrorOutput, macros::program_setup, Program};
fn main() {
let mut program = ThisProgram::new();
@@ -207,7 +206,7 @@ fn main() {
#[program_setup]
fn no_error_setup(program: &mut Program<ThisProgram>) {
program.global_flag(["--no-error"], |program| {
- program.stdout_setting.error_output = false;
+ program.stdout_setting.error_output = ErrorOutput::Hide;
});
}
```
diff --git a/docs/res/guide.txt b/docs/res/guide.txt
index 657c7ca..74f9c69 100644
--- a/docs/res/guide.txt
+++ b/docs/res/guide.txt
@@ -5,5 +5,5 @@
│ > cargo add mingling │
│ │
│ Or add this to your Cargo.toml │
- │ > mingling = "0.3.0" │
+ │ > mingling = "0.4.0" │
└────────────────────────────────────┘