generateToolHelp static method
Generate tool-level help text.
Shows tool description, usage, global options, and available commands.
Implementation
static String generateToolHelp(ToolDefinition tool) {
final buf = StringBuffer();
// Header
buf.writeln('**${tool.name}** v${tool.version}');
buf.writeln();
buf.writeln(tool.description);
buf.writeln();
// Usage
buf.writeln('<cyan>**Usage**</cyan>');
if (tool.mode == ToolMode.multiCommand) {
buf.writeln(' ${tool.name} [global-options] :command [command-options]');
} else {
buf.writeln(' ${tool.name} [options]');
}
buf.writeln();
// Global options
if (tool.allGlobalOptions.isNotEmpty) {
buf.writeln('<yellow>**Global Options**</yellow>');
_writeOptions(buf, tool.allGlobalOptions);
buf.writeln();
}
// Commands
if (tool.commands.isNotEmpty) {
buf.writeln('<green>**Commands**</green>');
for (final cmd in tool.visibleCommands) {
final aliasStr = cmd.aliases.isNotEmpty ? ' (${cmd.aliases.join(', ')})' : '';
buf.writeln(' :${cmd.name}$aliasStr');
buf.writeln(' ${cmd.description}');
}
buf.writeln();
buf.writeln(' Use `${tool.name} :command --help` for command-specific help.');
buf.writeln();
}
// Footer
if (tool.helpFooter != null) {
buf.writeln(tool.helpFooter!);
}
return buf.toString();
}