Console help: revert to command listing; hide connect alias.
`help` bare went back to printing the textual list of commands rather than opening the help screen — the screen is reachable from the dashboard with `[h]`. This matches how every other CLI handles `help` and avoids surprising script behaviour. Added a `hidden` field on `CommandSpec` so registry-level aliases can be excluded from the listing. `connect` is now hidden (the alias `plug` is the user-facing name on the dashboard and in `help`). Both names continue to resolve to the same action; existing scripts that used `connect` still work. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -27,9 +27,28 @@ void Tui::RegisterCommands() {
|
|||||||
{{"command name (optional)", Completion::Command}},
|
{{"command name (optional)", Completion::Command}},
|
||||||
[this](const std::vector<std::string> &args) {
|
[this](const std::vector<std::string> &args) {
|
||||||
if (args.empty()) {
|
if (args.empty()) {
|
||||||
// Bare → open the feature-reference screen.
|
// Bare → textual list of commands. The feature-reference
|
||||||
screen_back_idx = -1;
|
// screen lives at `screen_idx = 6` and is reachable from
|
||||||
screen_idx = 6;
|
// the dashboard with `[h]`.
|
||||||
|
size_t maxw = 0;
|
||||||
|
for (const auto &kv : commands) maxw = std::max(maxw, kv.first.size());
|
||||||
|
auto print_group = [&](const std::string &title, bool want_interactive) {
|
||||||
|
bool printed_any = false;
|
||||||
|
for (const auto &kv : commands) {
|
||||||
|
if (kv.second.hidden) continue;
|
||||||
|
if (kv.second.interactive != want_interactive) continue;
|
||||||
|
if (!printed_any) { Print(title); printed_any = true; }
|
||||||
|
Print(" " + kv.first
|
||||||
|
+ std::string(maxw - kv.first.size() + 2, ' ')
|
||||||
|
+ kv.second.description);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Print("Commands — type `help <name>` for details.");
|
||||||
|
print_group("Interactive (open a full-screen mode):", true);
|
||||||
|
print_group("Other:", false);
|
||||||
|
Print("Keys: Esc cancels a multi-step prompt or returns to the dashboard;");
|
||||||
|
Print(" Tab completes commands/paths or cycles focus in screens;");
|
||||||
|
Print(" PageUp/PageDown scroll output, Home/End jump to top/bottom.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const std::string &name = args[0];
|
const std::string &name = args[0];
|
||||||
@@ -55,9 +74,7 @@ void Tui::RegisterCommands() {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
/*prompt_for_missing=*/ false,
|
/*prompt_for_missing=*/ false,
|
||||||
"bare → open the help screen; `help <name>` → textual command help",
|
"list commands (or `help <name>` for one command's details)",
|
||||||
/*scriptable=*/ false,
|
|
||||||
/*interactive=*/ true,
|
|
||||||
};
|
};
|
||||||
commands["clear"] = { {}, [this](auto &) { output.clear(); }, true,
|
commands["clear"] = { {}, [this](auto &) { output.clear(); }, true,
|
||||||
"clear the visualization area" };
|
"clear the visualization area" };
|
||||||
@@ -571,8 +588,11 @@ void Tui::RegisterCommands() {
|
|||||||
};
|
};
|
||||||
// UI alias: the dashboard surfaces this command as `plug`. Keep the
|
// UI alias: the dashboard surfaces this command as `plug`. Keep the
|
||||||
// canonical `connect` for script + save/restore stability.
|
// canonical `connect` for script + save/restore stability.
|
||||||
|
// `plug` is the user-facing name (dashboard shortcut [p]). `connect`
|
||||||
|
// stays registered for script + save/restore backward compatibility but
|
||||||
|
// is hidden from `help`.
|
||||||
commands["plug"] = commands["connect"];
|
commands["plug"] = commands["connect"];
|
||||||
commands["plug"].description = "alias of `connect` (UI label used in the dashboard)";
|
commands["connect"].hidden = true;
|
||||||
|
|
||||||
commands["explore"] = { {}, [this](auto &) {
|
commands["explore"] = { {}, [this](auto &) {
|
||||||
if (!sys) { Print("no system: run 'new' first."); return; }
|
if (!sys) { Print("no system: run 'new' first."); return; }
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ class Tui {
|
|||||||
std::string description;
|
std::string description;
|
||||||
bool scriptable = true;
|
bool scriptable = true;
|
||||||
bool interactive = false; ///< opens a full-screen mode when called bare
|
bool interactive = false; ///< opens a full-screen mode when called bare
|
||||||
|
bool hidden = false; ///< don't list in `help` (used by aliases)
|
||||||
};
|
};
|
||||||
|
|
||||||
// ---- Shell state ----
|
// ---- Shell state ----
|
||||||
|
|||||||
Reference in New Issue
Block a user