aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-08-17 02:29:30 +0800
committer魏曹先生 <1992414357@qq.com>2026-08-17 02:39:56 +0800
commit6980fbf2f9fb4c599d8dc6ff549a8b3288eb24e9 (patch)
treebc7049698955d7a40706ea691fd5bab526a6b5e5 /docs
parent4c191b2b46a67a0dda6e9a867b40f45156af4f9c (diff)
refactor!: remove dynamic dispatcher registration API
Dispatchers are now always registered at compile time, removing the `with_dispatcher` / `with_dispatchers` methods and the `PathfinderConfig` API. The `dispatch_tree` feature now only controls the matching strategy (trie vs linear list).
Diffstat (limited to 'docs')
-rw-r--r--docs/_zh_CN/pages/10-help.md1
-rw-r--r--docs/_zh_CN/pages/13-hook.md1
-rw-r--r--docs/_zh_CN/pages/2-define-a-dispatcher.md17
-rw-r--r--docs/_zh_CN/pages/3-define-a-chain.md1
-rw-r--r--docs/_zh_CN/pages/4-render-result.md1
-rw-r--r--docs/_zh_CN/pages/5-multiple-commands.md2
-rw-r--r--docs/_zh_CN/pages/7-argument-parse-clap.md1
-rw-r--r--docs/_zh_CN/pages/9-error-handling.md1
-rw-r--r--docs/_zh_CN/pages/advanced/1-completion.md2
-rw-r--r--docs/_zh_CN/pages/advanced/2-structural-renderer.md1
-rw-r--r--docs/pages/10-help.md1
-rw-r--r--docs/pages/13-hook.md1
-rw-r--r--docs/pages/2-define-a-dispatcher.md17
-rw-r--r--docs/pages/3-define-a-chain.md1
-rw-r--r--docs/pages/4-render-result.md1
-rw-r--r--docs/pages/5-multiple-commands.md2
-rw-r--r--docs/pages/7-argument-parse-clap.md1
-rw-r--r--docs/pages/9-error-handling.md1
-rw-r--r--docs/pages/advanced/1-completion.md2
-rw-r--r--docs/pages/advanced/2-structural-renderer.md1
20 files changed, 0 insertions, 56 deletions
diff --git a/docs/_zh_CN/pages/10-help.md b/docs/_zh_CN/pages/10-help.md
index a399ae3..99a81fd 100644
--- a/docs/_zh_CN/pages/10-help.md
+++ b/docs/_zh_CN/pages/10-help.md
@@ -55,7 +55,6 @@ fn help_root(entry: EntryFallback) {
fn main() {
let mut program = ThisProgram::new();
program.with_setup(BasicProgramSetup);
- program.with_dispatcher(CMDGreet);
program.exec_and_exit();
}
```
diff --git a/docs/_zh_CN/pages/13-hook.md b/docs/_zh_CN/pages/13-hook.md
index ad3008a..2aa3ef7 100644
--- a/docs/_zh_CN/pages/13-hook.md
+++ b/docs/_zh_CN/pages/13-hook.md
@@ -75,7 +75,6 @@ fn main() {
}),
);
- program.with_dispatcher(CMDGreet);
program.exec_and_exit();
}
```
diff --git a/docs/_zh_CN/pages/2-define-a-dispatcher.md b/docs/_zh_CN/pages/2-define-a-dispatcher.md
index b238d9f..4ec7c05 100644
--- a/docs/_zh_CN/pages/2-define-a-dispatcher.md
+++ b/docs/_zh_CN/pages/2-define-a-dispatcher.md
@@ -31,23 +31,6 @@ dispatcher!("greet", CMDGreet => EntryGreet);
> [!NOTE]
> 命令名(`"greet"`)会自动转换为 kebab-case。即使你写 `"GreetUser"`,匹配时也会变成 `greet-user`。
-## 注册到 Program
-
-有了分发器之后,需要告诉 Program 它的存在:
-
-```rust
-@@@ dispatcher!("greet", CMDGreet => EntryGreet);
-@@@ fn main() {
-@@@ let mut program = ThisProgram::new();
-// 注册分发器
-program.with_dispatcher(CMDGreet);
-@@@ }
-@@@ gen_program!();
-```
-
-> [!TIP]
-> 如果命令多了,可以用 `with_dispatchers` 一次注册多个:`program.with_dispatchers((CMDGreet, CMDAdd, CMDRemoteRm))`。
-
## 多级命令
如果你的程序有层级结构——比如 `remote add`、`remote rm`——只需要在命令名里加点号分隔:
diff --git a/docs/_zh_CN/pages/3-define-a-chain.md b/docs/_zh_CN/pages/3-define-a-chain.md
index f845d11..b1becc9 100644
--- a/docs/_zh_CN/pages/3-define-a-chain.md
+++ b/docs/_zh_CN/pages/3-define-a-chain.md
@@ -117,7 +117,6 @@ fn handle_greet(args: EntryGreet) -> Next {
fn main() {
let mut program = ThisProgram::new();
- program.with_dispatcher(CMDGreet);
program.exec_and_exit();
}
diff --git a/docs/_zh_CN/pages/4-render-result.md b/docs/_zh_CN/pages/4-render-result.md
index 7f66c71..2dbb617 100644
--- a/docs/_zh_CN/pages/4-render-result.md
+++ b/docs/_zh_CN/pages/4-render-result.md
@@ -76,7 +76,6 @@ fn render_name(name: ResultName) {
// 5. 在 main 函数内装配程序并运行
fn main() {
let mut program = ThisProgram::new();
- program.with_dispatcher(CMDGreet);
program.exec_and_exit();
}
diff --git a/docs/_zh_CN/pages/5-multiple-commands.md b/docs/_zh_CN/pages/5-multiple-commands.md
index 681fe0a..b251232 100644
--- a/docs/_zh_CN/pages/5-multiple-commands.md
+++ b/docs/_zh_CN/pages/5-multiple-commands.md
@@ -42,8 +42,6 @@ fn render_sum(result: ResultSum) {
fn main() {
let mut program = ThisProgram::new();
- program.with_dispatcher(CMDGreet);
- program.with_dispatcher(CMDAdd);
program.exec_and_exit();
}
diff --git a/docs/_zh_CN/pages/7-argument-parse-clap.md b/docs/_zh_CN/pages/7-argument-parse-clap.md
index 22896d2..83dddc3 100644
--- a/docs/_zh_CN/pages/7-argument-parse-clap.md
+++ b/docs/_zh_CN/pages/7-argument-parse-clap.md
@@ -76,7 +76,6 @@ fn main() {
program.with_setup(BasicProgramSetup);
program.stdout_setting.clap_help_print_behaviour =
mingling::config::ClapHelpPrintBehaviour::WriteToRenderResult;
- program.with_dispatcher(CMDGreet);
program.exec_and_exit();
}
```
diff --git a/docs/_zh_CN/pages/9-error-handling.md b/docs/_zh_CN/pages/9-error-handling.md
index f5055b8..222ef44 100644
--- a/docs/_zh_CN/pages/9-error-handling.md
+++ b/docs/_zh_CN/pages/9-error-handling.md
@@ -88,7 +88,6 @@ fn render_error_name_empty(err: ErrorNameEmpty) {
fn main() {
let mut program = ThisProgram::new();
- program.with_dispatcher(CMDGreet);
program.exec_and_exit();
}
diff --git a/docs/_zh_CN/pages/advanced/1-completion.md b/docs/_zh_CN/pages/advanced/1-completion.md
index a6500db..c7dd678 100644
--- a/docs/_zh_CN/pages/advanced/1-completion.md
+++ b/docs/_zh_CN/pages/advanced/1-completion.md
@@ -24,8 +24,6 @@ features = [
当用户按下 `TAB` 时,补全脚本会调用程序的隐藏子命令 `__comp`,它会根据输入的 `ShellContext` 动态地查询最合适的建议。
-这个隐藏子命令由 `gen_program!()` 在启用 `comp` 特性时自动生成,对应的分发器是 `CMDCompletion`,你需要使用 `with_dispatcher` 添加到程序中。
-
补全流程:
1. 二次匹配用户当前输入的 `Dispatcher`
diff --git a/docs/_zh_CN/pages/advanced/2-structural-renderer.md b/docs/_zh_CN/pages/advanced/2-structural-renderer.md
index a498dac..9723247 100644
--- a/docs/_zh_CN/pages/advanced/2-structural-renderer.md
+++ b/docs/_zh_CN/pages/advanced/2-structural-renderer.md
@@ -95,7 +95,6 @@ fn render_info(info: Info) {
@@@fn main() {
@@@ let mut program = ThisProgram::new();
@@@ program.with_setup(StructuralRendererSetup);
-@@@ program.with_dispatcher(CMDRender);
@@@ program.exec();
@@@}
@@@gen_program!();
diff --git a/docs/pages/10-help.md b/docs/pages/10-help.md
index d9cc557..3d4b3b8 100644
--- a/docs/pages/10-help.md
+++ b/docs/pages/10-help.md
@@ -55,7 +55,6 @@ For `--help` to work properly, add `BasicProgramSetup` in `main`:
fn main() {
let mut program = ThisProgram::new();
program.with_setup(BasicProgramSetup);
- program.with_dispatcher(CMDGreet);
program.exec_and_exit();
}
```
diff --git a/docs/pages/13-hook.md b/docs/pages/13-hook.md
index d927a9c..c525998 100644
--- a/docs/pages/13-hook.md
+++ b/docs/pages/13-hook.md
@@ -75,7 +75,6 @@ fn main() {
}),
);
- program.with_dispatcher(CMDGreet);
program.exec_and_exit();
}
```
diff --git a/docs/pages/2-define-a-dispatcher.md b/docs/pages/2-define-a-dispatcher.md
index 1208e64..432d7db 100644
--- a/docs/pages/2-define-a-dispatcher.md
+++ b/docs/pages/2-define-a-dispatcher.md
@@ -31,23 +31,6 @@ dispatcher!("greet", CMDGreet => EntryGreet);
> [!NOTE]
> The command name (`"greet"`) is auto-converted to kebab-case. Even if you write `"GreetUser"`, matching will use `greet-user`.
-## Registering with Program
-
-Once you have a dispatcher, you need to tell Program about it:
-
-```rust
-@@@ dispatcher!("greet", CMDGreet => EntryGreet);
-@@@ fn main() {
-@@@ let mut program = ThisProgram::new();
-// Register the dispatcher
-program.with_dispatcher(CMDGreet);
-@@@ }
-@@@ gen_program!();
-```
-
-> [!TIP]
-> If you have many commands, use `with_dispatchers` to register multiple at once: `program.with_dispatchers((CMDGreet, CMDAdd, CMDRemoteRm))`.
-
## Multi-level Commands
If your program has a hierarchy — e.g., `remote add`, `remote rm` — just separate the command name with dots:
diff --git a/docs/pages/3-define-a-chain.md b/docs/pages/3-define-a-chain.md
index 450522b..1134dbf 100644
--- a/docs/pages/3-define-a-chain.md
+++ b/docs/pages/3-define-a-chain.md
@@ -117,7 +117,6 @@ fn handle_greet(args: EntryGreet) -> Next {
fn main() {
let mut program = ThisProgram::new();
- program.with_dispatcher(CMDGreet);
program.exec_and_exit();
}
diff --git a/docs/pages/4-render-result.md b/docs/pages/4-render-result.md
index 7b63b45..a50c509 100644
--- a/docs/pages/4-render-result.md
+++ b/docs/pages/4-render-result.md
@@ -76,7 +76,6 @@ fn render_name(name: ResultName) {
// 5. Assemble and run the program in main
fn main() {
let mut program = ThisProgram::new();
- program.with_dispatcher(CMDGreet);
program.exec_and_exit();
}
diff --git a/docs/pages/5-multiple-commands.md b/docs/pages/5-multiple-commands.md
index 17739e3..b92cb95 100644
--- a/docs/pages/5-multiple-commands.md
+++ b/docs/pages/5-multiple-commands.md
@@ -42,8 +42,6 @@ fn render_sum(result: ResultSum) {
fn main() {
let mut program = ThisProgram::new();
- program.with_dispatcher(CMDGreet);
- program.with_dispatcher(CMDAdd);
program.exec_and_exit();
}
diff --git a/docs/pages/7-argument-parse-clap.md b/docs/pages/7-argument-parse-clap.md
index 3b8ec8b..ee1e96f 100644
--- a/docs/pages/7-argument-parse-clap.md
+++ b/docs/pages/7-argument-parse-clap.md
@@ -76,7 +76,6 @@ fn main() {
program.with_setup(BasicProgramSetup);
program.stdout_setting.clap_help_print_behaviour =
mingling::config::ClapHelpPrintBehaviour::WriteToRenderResult;
- program.with_dispatcher(CMDGreet);
program.exec_and_exit();
}
```
diff --git a/docs/pages/9-error-handling.md b/docs/pages/9-error-handling.md
index 680328c..389e394 100644
--- a/docs/pages/9-error-handling.md
+++ b/docs/pages/9-error-handling.md
@@ -88,7 +88,6 @@ fn render_error_name_empty(err: ErrorNameEmpty) {
fn main() {
let mut program = ThisProgram::new();
- program.with_dispatcher(CMDGreet);
program.exec_and_exit();
}
diff --git a/docs/pages/advanced/1-completion.md b/docs/pages/advanced/1-completion.md
index 52350db..f70d415 100644
--- a/docs/pages/advanced/1-completion.md
+++ b/docs/pages/advanced/1-completion.md
@@ -24,8 +24,6 @@ features = [
When the user presses `TAB`, the completion script calls the program's hidden subcommand `__comp`, which dynamically queries the best suggestions based on the provided `ShellContext`.
-This hidden subcommand is auto-generated by `gen_program!()` when the `comp` feature is enabled. Its dispatcher is `CMDCompletion` — you need to add it to your program via `with_dispatcher`.
-
Completion flow:
1. Re-match the user's current input to a `Dispatcher`
diff --git a/docs/pages/advanced/2-structural-renderer.md b/docs/pages/advanced/2-structural-renderer.md
index b54af22..489baba 100644
--- a/docs/pages/advanced/2-structural-renderer.md
+++ b/docs/pages/advanced/2-structural-renderer.md
@@ -95,7 +95,6 @@ fn render_info(info: Info) {
@@@fn main() {
@@@ let mut program = ThisProgram::new();
@@@ program.with_setup(StructuralRendererSetup);
-@@@ program.with_dispatcher(CMDRender);
@@@ program.exec();
@@@}
@@@gen_program!();