#[repr(transparent)]pub struct QueryCursor(pub QueryCursor);Expand description
Wraps tree-sitter’s QueryCursor where matches and captures are always typed.
Tuple Fields§
§0: QueryCursorImplementations§
Source§impl QueryCursor
impl QueryCursor
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new cursor for executing a given query.
The cursor stores the state that is needed to iteratively search for matches.
Sourcepub fn match_limit(&self) -> u16
pub fn match_limit(&self) -> u16
Return the maximum number of in-progress matches for this cursor.
Sourcepub fn set_match_limit(&mut self, limit: u16)
pub fn set_match_limit(&mut self, limit: u16)
Set the maximum number of in-progress matches for this cursor.
Sourcepub fn did_exceed_match_limit(&self) -> bool
pub fn did_exceed_match_limit(&self) -> bool
Check if, on its last execution, this cursor exceeded its maximum number of in-progress matches.
Sourcepub fn set_byte_range(&mut self, range: Range<usize>) -> &mut Self
pub fn set_byte_range(&mut self, range: Range<usize>) -> &mut Self
Set the range in which the query will be executed, in terms of byte offsets.
Like tree-sitter’s QueryCursor::set_byte_range,
returns self for convenience (builder pattern).
Sourcepub fn set_point_range(&mut self, range: Range<Point>) -> &mut Self
pub fn set_point_range(&mut self, range: Range<Point>) -> &mut Self
Set the range in which the query will be executed, in terms of rows and columns.
Like tree-sitter’s QueryCursor::set_point_range,
returns self for convenience (builder pattern).
Sourcepub fn matches<'query, 'cursor: 'query, 'tree, Query: Query, Text: TextProvider<I> + 'query, I: AsRef<[u8]>>(
&'cursor mut self,
query: &'query Query,
node: impl Node<'tree>,
text: Text,
) -> QueryMatches<'query, 'tree, Query, Text, I>
pub fn matches<'query, 'cursor: 'query, 'tree, Query: Query, Text: TextProvider<I> + 'query, I: AsRef<[u8]>>( &'cursor mut self, query: &'query Query, node: impl Node<'tree>, text: Text, ) -> QueryMatches<'query, 'tree, Query, Text, I>
Run a typed query on the cursor, iterating over the matches in order they are found.
Each match contains the index of the pattern that matched, and a list of captures. Because multiple patterns can match the same set of nodes, one match may contain captures that appear before some of the captures from a previous match.
Sourcepub fn captures<'query, 'cursor: 'query, 'tree, Query: Query, Text: TextProvider<I> + 'query, I: AsRef<[u8]>>(
&'cursor mut self,
query: &'query Query,
node: impl Node<'tree>,
text: Text,
) -> QueryCaptures<'query, 'tree, Query, Text, I> ⓘ
pub fn captures<'query, 'cursor: 'query, 'tree, Query: Query, Text: TextProvider<I> + 'query, I: AsRef<[u8]>>( &'cursor mut self, query: &'query Query, node: impl Node<'tree>, text: Text, ) -> QueryCaptures<'query, 'tree, Query, Text, I> ⓘ
Run a typed query on the cursor, iterating over the captures in order they appear.
This is useful if you don’t care about which pattern matched, and just want a single, ordered sequence of captures.