matches method
Implementation
bool matches(
String text,
List<TreeSitterNode> ancestors, {
Set<String> properties = const {},
}) {
return switch (operator) {
TreeSitterQueryPredicateOperator.match => _matchesRegex(text),
TreeSitterQueryPredicateOperator.notMatch => !_matchesRegex(text),
TreeSitterQueryPredicateOperator.anyMatch => _matchesRegex(text),
TreeSitterQueryPredicateOperator.anyNotMatch => !_matchesRegex(text),
TreeSitterQueryPredicateOperator.equals =>
values.isNotEmpty && text == values.first,
TreeSitterQueryPredicateOperator.notEquals =>
values.isNotEmpty && text != values.first,
TreeSitterQueryPredicateOperator.anyEquals =>
values.isNotEmpty && text == values.first,
TreeSitterQueryPredicateOperator.anyNotEquals =>
values.isNotEmpty && text != values.first,
TreeSitterQueryPredicateOperator.anyOf => values.contains(text),
TreeSitterQueryPredicateOperator.notAnyOf => !values.contains(text),
TreeSitterQueryPredicateOperator.notHasParent => !ancestors.any(
(ancestor) => values.contains(ancestor.kind),
),
TreeSitterQueryPredicateOperator.hasAncestor => ancestors.any(
(ancestor) => values.contains(ancestor.kind),
),
TreeSitterQueryPredicateOperator.notHasAncestor => !ancestors.any(
(ancestor) => values.contains(ancestor.kind),
),
TreeSitterQueryPredicateOperator.isProperty =>
values.isNotEmpty && properties.contains(values.first),
TreeSitterQueryPredicateOperator.isNotProperty =>
values.isNotEmpty && !properties.contains(values.first),
};
}