rowLine method
Builds a data row line.
index is used for zebra striping (odd rows are dimmed).
cells should match the column count; missing cells render as empty.
Implementation
String rowLine(
List<String> cells, {
int index = 0,
String? leadingGutter,
bool forceStripe = false,
}) {
final glyphs = theme.glyphs;
final buffer = StringBuffer();
// Leading gutter
buffer.write(leadingGutter ?? _defaultGutter());
final stripe = (zebraStripes && index % 2 == 1) || forceStripe;
final prefix = stripe ? theme.dim : '';
final suffix = stripe ? theme.reset : '';
for (var i = 0; i < columns.length; i++) {
if (i > 0) {
buffer.write(' ${theme.gray}${glyphs.borderVertical}${theme.reset} ');
}
final cell = i < cells.length ? cells[i] : '';
buffer.write(prefix);
buffer.write(_padCell(cell, i));
buffer.write(suffix);
}
return buffer.toString();
}