TreeSitterEditBatch.fromMessage constructor

TreeSitterEditBatch.fromMessage(
  1. Map<Object?, Object?> message
)

Implementation

factory TreeSitterEditBatch.fromMessage(Map<Object?, Object?> message) {
  final baseRevision = message['baseRevision'];
  final revision = message['revision'];
  final edits = message['edits'];
  if (baseRevision is! int || revision is! int || edits is! List<Object?>) {
    throw const FormatException('Invalid incremental edit batch');
  }
  return TreeSitterEditBatch(
    baseRevision: baseRevision,
    revision: revision,
    edits: edits.map((value) {
      if (value is! Map<Object?, Object?>) {
        throw const FormatException('Edit must be a map');
      }
      return TreeSitterInputEdit.fromMessage(value);
    }),
  );
}