currentStatus property
TreeSitterTreeCursorStatus
get
currentStatus
Implementation
TreeSitterTreeCursorStatus get currentStatus {
_checkNotDisposed();
final currentFieldId = fieldId;
if (_stack.isEmpty) {
return TreeSitterTreeCursorStatus(
fieldId: currentFieldId,
hasLaterSiblings: false,
hasLaterNamedSiblings: false,
canHaveLaterSiblingsWithThisField: false,
supertypeIds: _currentSupertypeIds(),
);
}
final frame = _stack.last;
final laterSiblings = <TreeSitterNode>[
for (
var index = frame.childIndex + 1;
index < frame.parent.childCount;
index++
)
frame.parent.child(index)!,
];
final currentFieldName = fieldName;
return TreeSitterTreeCursorStatus(
fieldId: currentFieldId,
hasLaterSiblings: laterSiblings.isNotEmpty,
hasLaterNamedSiblings: laterSiblings.any((node) => node.isNamed),
canHaveLaterSiblingsWithThisField:
currentFieldName != null &&
laterSiblings.any(
(node) => node.fieldNames.contains(currentFieldName),
),
supertypeIds: _currentSupertypeIds(),
);
}