build method
Implementation
String build(List<Command> commands, {String? header}) {
final buffer = StringBuffer();
if (header != null && header.isNotEmpty) {
buffer.writeln(header.trimRight());
}
if (commands.isEmpty) return buffer.toString();
// Sort commands by primary name; aliases are shown inline.
final sorted = [...commands]..sort((a, b) => a.name.compareTo(b.name));
final maxNameLen = sorted
.map((c) => _displayName(c).length)
.fold<int>(0, (m, e) => e > m ? e : m);
buffer.writeln('Commands:');
for (final c in sorted) {
final name = _displayName(c);
final pad = ' ' * (maxNameLen - name.length);
buffer.writeln(' $name$pad ${c.description}');
}
return buffer.toString().trimRight();
}