getText method

String getText([
  1. BufferRange? range
])

Get the plain text content of the buffer including the scrollback. Accepts an optional range to get a specific part of the buffer.

Implementation

String getText([BufferRange? range]) {
  range ??= BufferRangeLine(
    CellOffset(0, 0),
    CellOffset(viewWidth, height - 1),
  );

  range = range.normalized;

  final builder = StringBuffer();

  for (var segment in range.toSegments()) {
    if (segment.line < 0 || segment.line >= height) {
      continue;
    }
    final line = lines[segment.line];
    final joinWrappedLine = range is! BufferRangeBlock && line.isWrapped;
    if (!(segment.line == range.begin.y ||
        segment.line == 0 ||
        joinWrappedLine)) {
      builder.write("\n");
    }
    builder.write(line.getText(segment.start, segment.end));
  }

  return builder.toString();
}