py-tree-sitter
py-tree-sitter copied to clipboard
feat!: capsules & query API
Breaking changes are marked with !.
Additions:
Node.child_containing_descendant(descendant)Tree.language(getter)Query.pattern_count(getter)Query.capture_count(getter)Query.match_limit(getter)Query.did_exceed_match_limit(getter)Query.set_match_limit(match_limit): returnsselfQuery.set_max_start_depth(max_start_depth): returnsselfQuery.set_byte_range(byte_range): returnsselfQuery.set_point_range(point_range): returnsselfQuery.disable_pattern(index): returnsselfQuery.disable_capture(capture): returnsselfQuery.pattern_settings(index)Query.pattern_assertions(index)Query.start_byte_for_pattern(index)Query.is_pattern_rooted(index)Query.is_pattern_non_local(index)Query.is_pattern_guaranteed_at_step(offset)QueryError(exception class)QueryPredicate(typing protocol)
Removals:
Parser.set_language(language)Parser.set_included_ranges(ranges)Parser.set_timeout_micros(timeout)Node.sexp()Tree.text()TreeCursor.goto_first_child_for_point(row, column)LookaheadIterator.reset(language, state)
Changes:
Language()accepts a capsule as an argument.Parser.parse(...)no longer accepts akeep_textargument.Query.captures(...)!- Range arguments were removed (use
set_*instead). - Added an argument for custom query predicates.
- Return type was changed to
dict[str, list[Node]].
- Range arguments were removed (use
Query.matches(...)!- Range arguments were removed (use
set_*instead). - Added an argument for custom query predicates.
- Return type was changed to
list[tuple[int, dict[str, list[Node]]]].
- Range arguments were removed (use
TreeCursor.goto_first_child_for_byte(byte)returnsint | None.TreeCursor.goto_first_child_for_point(point)returnsint | None.