collect method

Implementation

TreeSitterCollectedInput collect() {
  final codeUnits = <int>[];
  var codeUnitOffset = 0;
  var point = const TreeSitterPoint(0, 0);
  while (true) {
    final values = read(codeUnitOffset, point);
    if (values.isEmpty) break;
    for (final encodedValue in values) {
      final value = _decodeUtf16Word(encodedValue, encoding);
      codeUnits.add(value);
      codeUnitOffset++;
      point = value == 0x0a
          ? TreeSitterPoint(point.row + 1, 0)
          : TreeSitterPoint(point.row, point.column + 1);
    }
  }
  return TreeSitterCollectedInput(
    source: String.fromCharCodes(codeUnits),
    byteLength: codeUnitOffset * 2,
    endPoint: point,
  );
}