rowLine method

String rowLine(
  1. List<String> cells, {
  2. int index = 0,
  3. String? leadingGutter,
  4. bool forceStripe = false,
})

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