feat: H3 help <command> per-command detail + general reference
HELP node takes an optional single-word topic (BarePath);
AppCommand::Help { topic }. note_help_topic renders the help
block(s) of every command sharing that entry word (so `help
create` covers both create forms), plus `help types` and a
friendly "no help for X" pointer for unknown topics. Full help
gains a detail-hint footer. Catalogued help.detail_hint /
help.unknown_topic; parse-error matrix updated (help now takes a
topic, so the near-miss is the multi-word case). 9 integration
tests in tests/it/help_command.rs. Mark H3 [x].
This commit is contained in:
+15
-10
@@ -696,17 +696,22 @@ since ADR-0027.)
|
||||
there, so the payoff is small.
|
||||
- [ ] **H2** `hint` provides contextual help for the current
|
||||
input or the most recent error.
|
||||
- [/] **H3** `help` provides general reference and per-command
|
||||
- [x] **H3** `help` provides general reference and per-command
|
||||
help.
|
||||
*(Partial, verified 2026-06-07: the `help` command
|
||||
(`app.rs:2370` `note_help`) lists all currently-supported
|
||||
commands by iterating the REGISTRY + translating each
|
||||
`CommandNode.help_id`, plus an intro and a types reference, so a
|
||||
new command appears automatically. **Missing:** `help <command>`
|
||||
per-command detail — the HELP node's shape is `EMPTY_SEQ`, so it
|
||||
takes no argument — and a fuller "general reference". These two
|
||||
are the remaining pieces; the `help_id` hook is already there
|
||||
to build per-command detail on.)*
|
||||
*(Done 2026-06-07: the **general reference** is `help` (no arg) —
|
||||
intro + the full command list (REGISTRY × `help_id`, so new
|
||||
commands appear automatically) + the type reference + a footer
|
||||
pointing at the focused form. **Per-command help** is `help
|
||||
<command>` (H3's new piece): the HELP node took an optional
|
||||
single-word topic (`BarePath`), `AppCommand::Help { topic }`,
|
||||
and `note_help_topic` renders the block(s) of every command
|
||||
sharing that entry word — so `help create` covers both create
|
||||
forms — plus `help types` for the type reference and a friendly
|
||||
"no help for `X`" pointer for an unknown topic. Help/usage
|
||||
strings catalogued + key-registered; 9 integration tests
|
||||
(`tests/it/help_command.rs`). A richer *narrative* overview
|
||||
(modes, the `:` escape, syntax conventions) is reference-docs
|
||||
scope, tracked under **DOC1** — not part of H3.)*
|
||||
|
||||
## CLI
|
||||
|
||||
|
||||
Reference in New Issue
Block a user