Skip to content

Commit b98ee67

Browse files
authored
tree-sitter: add missing members (#8693)
1 parent 81f8a10 commit b98ee67

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

stubs/tree-sitter/@tests/stubtest_allowlist.txt

+8
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,34 @@
11
# "self" argument is missing when stubtest inspects these methods
22
tree_sitter.Node.child_by_field_id
33
tree_sitter.Node.child_by_field_name
4+
tree_sitter.Node.children_by_field_id
5+
tree_sitter.Node.children_by_field_name
46
tree_sitter.Node.sexp
57
tree_sitter.Node.walk
68
tree_sitter.Parser.parse
79
tree_sitter.Parser.set_language
810
tree_sitter.Tree.edit
11+
tree_sitter.Tree.get_changed_ranges
912
tree_sitter.Tree.walk
13+
tree_sitter.TreeCursor.copy
1014
tree_sitter.TreeCursor.current_field_name
1115
tree_sitter.TreeCursor.goto_first_child
1216
tree_sitter.TreeCursor.goto_next_sibling
1317
tree_sitter.TreeCursor.goto_parent
1418
tree_sitter.binding.Node.child_by_field_id
1519
tree_sitter.binding.Node.child_by_field_name
20+
tree_sitter.binding.Node.children_by_field_id
21+
tree_sitter.binding.Node.children_by_field_name
1622
tree_sitter.binding.Node.sexp
1723
tree_sitter.binding.Node.walk
1824
tree_sitter.binding.Parser.parse
1925
tree_sitter.binding.Parser.set_language
2026
tree_sitter.binding.Query.captures
2127
tree_sitter.binding.Query.matches
2228
tree_sitter.binding.Tree.edit
29+
tree_sitter.binding.Tree.get_changed_ranges
2330
tree_sitter.binding.Tree.walk
31+
tree_sitter.binding.TreeCursor.copy
2432
tree_sitter.binding.TreeCursor.current_field_name
2533
tree_sitter.binding.TreeCursor.goto_first_child
2634
tree_sitter.binding.TreeCursor.goto_next_sibling

stubs/tree-sitter/tree_sitter/__init__.pyi

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import ctypes
22
from _typeshed import StrPath
33
from collections.abc import Sequence
44

5-
# Query is missing at runtime for some reason
5+
# At runtime, Query and Range are available only in tree_sitter.binding
66
from tree_sitter.binding import Node as Node, Parser as Parser, Tree as Tree, TreeCursor as TreeCursor
77

88
class Language:

stubs/tree-sitter/tree_sitter/binding.pyi

+21-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ class Node:
1818
@property
1919
def has_error(self) -> bool: ...
2020
@property
21+
def id(self) -> int: ...
22+
@property
2123
def is_missing(self) -> bool: ...
2224
@property
2325
def is_named(self) -> bool: ...
@@ -28,6 +30,8 @@ class Node:
2830
@property
2931
def children(self) -> list[Node]: ...
3032
@property
33+
def named_children(self) -> list[Node]: ...
34+
@property
3135
def next_named_sibling(self) -> Node | None: ...
3236
@property
3337
def next_sibling(self) -> Node | None: ...
@@ -41,9 +45,12 @@ class Node:
4145
def text(self) -> bytes | Any: ... # can be None, but annoying to check
4246
@property
4347
def type(self) -> str: ...
44-
__hash__: ClassVar[None] # type: ignore[assignment]
48+
def children_by_field_name(self, name: str) -> list[Node]: ...
49+
def children_by_field_id(self, __id: int) -> list[Node]: ...
50+
def field_name_for_child(self, __child_index: int) -> str: ...
4551
def child_by_field_id(self, __id: int) -> Node | None: ...
4652
def child_by_field_name(self, __name: str) -> Node | None: ...
53+
__hash__: ClassVar[None] # type: ignore[assignment]
4754
def sexp(self) -> str: ...
4855
def walk(self) -> TreeCursor: ...
4956
def __eq__(self, other: object) -> bool: ...
@@ -67,6 +74,17 @@ class Query:
6774
# start_point and end_point arguments don't seem to do anything
6875
def captures(self) -> list[tuple[Node, str]]: ...
6976

77+
@final
78+
class Range:
79+
@property
80+
def start_byte(self) -> int: ...
81+
@property
82+
def end_byte(self) -> int: ...
83+
@property
84+
def start_point(self) -> tuple[int, int]: ...
85+
@property
86+
def end_point(self) -> tuple[int, int]: ...
87+
7088
@final
7189
class Tree:
7290
@property
@@ -82,12 +100,14 @@ class Tree:
82100
old_end_point: tuple[int, int],
83101
new_end_point: tuple[int, int],
84102
) -> None: ...
103+
def get_changed_ranges(self, new_tree: Tree) -> list[Range]: ...
85104
def walk(self) -> TreeCursor: ...
86105

87106
@final
88107
class TreeCursor:
89108
@property
90109
def node(self) -> Node: ...
110+
def copy(self) -> TreeCursor: ...
91111
def current_field_name(self) -> str | None: ...
92112
def goto_first_child(self) -> bool: ...
93113
def goto_next_sibling(self) -> bool: ...

0 commit comments

Comments
 (0)