generatedSubtreeLastExternalToken function

GeneratedTreeSitterNode? generatedSubtreeLastExternalToken(
  1. GeneratedTreeSitterNode tree
)

Returns the right-most external-token leaf, matching ts_subtree_last_external_token.

Implementation

GeneratedTreeSitterNode? generatedSubtreeLastExternalToken(
  GeneratedTreeSitterNode tree,
) {
  if (!tree.hasExternalTokens) return null;
  var current = tree;
  while (current.children.isNotEmpty) {
    GeneratedTreeSitterNode? next;
    for (final child in current.children.reversed) {
      if (child.hasExternalTokens) {
        next = child;
        break;
      }
    }
    if (next == null) return null;
    current = next;
  }
  return current;
}