edit method

void edit(
  1. TreeSitterInputEdit edit
)

Applies Tree-sitter's native node endpoint transform to this node handle.

Like ts_node_edit, this does not edit descendants. Callers holding a collection of node handles may edit each handle independently; Tree.edit applies the same transform to every node in the tree.

Implementation

void edit(TreeSitterInputEdit edit) {
  final start = _editedNodePosition(
    startByte,
    startPoint,
    startOffset.value,
    edit,
    affinityAfter: true,
  );
  final end = _editedNodePosition(
    endByte,
    endPoint,
    endOffset.value,
    edit,
    affinityAfter: false,
  );
  _editStates[this] = _TreeSitterNodeEditState(
    startByte: start.byte,
    endByte: end.byte,
    startOffset: TreeSitterUtf16Offset(start.utf16),
    endOffset: TreeSitterUtf16Offset(end.utf16),
    startPoint: start.point,
    endPoint: end.point,
    hasChanges: hasChanges || _nodeIntersectsEdit(this, edit),
  );
}