printTable method
Implementation
void printTable(List<String> headers, List<List<String>> rows) {
if (silent) return;
_clearSpinner();
// Very basic table formatting for now
if (rows.isEmpty) {
stdout.writeln('No data available.');
return;
}
List<int> columnWidths = List.filled(headers.length, 0);
for (int i = 0; i < headers.length; i++) {
columnWidths[i] = headers[i].length;
}
for (var row in rows) {
for (int i = 0; i < row.length; i++) {
if (i < columnWidths.length && row[i].length > columnWidths[i]) {
columnWidths[i] = row[i].length;
}
}
}
String formatRow(List<String> row) {
String result = '|';
for (int i = 0; i < row.length; i++) {
if (i < columnWidths.length) {
result += ' ${row[i].padRight(columnWidths[i])} |';
}
}
return result;
}
String separator = '+';
for (var width in columnWidths) {
separator += '${''.padRight(width + 2, '-')}+';
}
stdout.writeln(separator);
stdout.writeln(formatRow(headers));
stdout.writeln(separator);
for (var row in rows) {
stdout.writeln(formatRow(row));
}
stdout.writeln(separator);
}