helpText method
Generate formatted help text for all CLI flags.
Implementation
String helpText() {
final buffer = StringBuffer();
buffer.writeln('Usage: neomage [options] [prompt]');
buffer.writeln();
buffer.writeln('Options:');
final visibleFlags = CliFlags.all.where((f) => !f.isHidden).toList();
// Calculate max flag width for alignment.
int maxWidth = 0;
for (final flag in visibleFlags) {
int width = flag.long.length + 4; // --flag
if (flag.short != null) width += 4; // -f,
if (flag.takesValue) width += 8; // <value>
if (width > maxWidth) maxWidth = width;
}
for (final flag in visibleFlags) {
final shortPart = flag.short != null ? '-${flag.short}, ' : ' ';
final longPart = '--${flag.long}';
final valuePart = flag.takesValue ? ' <value>' : '';
final flagStr = '$shortPart$longPart$valuePart';
final padding = ' ' * (maxWidth - flagStr.length + 4);
buffer.writeln(' $flagStr$padding${flag.description}');
}
buffer.writeln();
buffer.writeln('Subcommands:');
buffer.writeln(' mcp Start as an MCP server');
buffer.writeln(' listen Start in listen mode');
return buffer.toString();
}