generateToolHelp static method

String generateToolHelp(
  1. ToolDefinition tool
)

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();
}