Struct tree_sitter::Query
source · pub struct Query { /* private fields */ }
Expand description
A set of patterns that match nodes in a syntax tree.
Implementations§
source§impl Query
impl Query
sourcepub fn new(language: &Language, source: &str) -> Result<Self, QueryError>
pub fn new(language: &Language, source: &str) -> Result<Self, QueryError>
Create a new query from a string containing one or more S-expression patterns.
The query is associated with a particular language, and can only be run on syntax nodes parsed with that language. References to Queries can be shared between multiple threads.
sourcepub fn start_byte_for_pattern(&self, pattern_index: usize) -> usize
pub fn start_byte_for_pattern(&self, pattern_index: usize) -> usize
Get the byte offset where the given pattern starts in the query’s source.
sourcepub fn pattern_count(&self) -> usize
pub fn pattern_count(&self) -> usize
Get the number of patterns in the query.
sourcepub const fn capture_names(&self) -> &[&str]
pub const fn capture_names(&self) -> &[&str]
Get the names of the captures used in the query.
sourcepub const fn capture_quantifiers(&self, index: usize) -> &[CaptureQuantifier]
pub const fn capture_quantifiers(&self, index: usize) -> &[CaptureQuantifier]
Get the quantifiers of the captures used in the query.
sourcepub fn capture_index_for_name(&self, name: &str) -> Option<u32>
pub fn capture_index_for_name(&self, name: &str) -> Option<u32>
Get the index for a given capture name.
sourcepub const fn property_predicates(
&self,
index: usize
) -> &[(QueryProperty, bool)]
pub const fn property_predicates( &self, index: usize ) -> &[(QueryProperty, bool)]
Get the properties that are checked for the given pattern index.
This includes predicates with the operators is?
and is-not?
.
sourcepub const fn property_settings(&self, index: usize) -> &[QueryProperty]
pub const fn property_settings(&self, index: usize) -> &[QueryProperty]
Get the properties that are set for the given pattern index.
This includes predicates with the operator set!
.
sourcepub const fn general_predicates(&self, index: usize) -> &[QueryPredicate]
pub const fn general_predicates(&self, index: usize) -> &[QueryPredicate]
Get the other user-defined predicates associated with the given index.
This includes predicate with operators other than:
match?
eq?
andnot-eq?
is?
andis-not?
set!
sourcepub fn disable_capture(&mut self, name: &str)
pub fn disable_capture(&mut self, name: &str)
Disable a certain capture within a query.
This prevents the capture from being returned in matches, and also avoids any resource usage associated with recording the capture.
sourcepub fn disable_pattern(&mut self, index: usize)
pub fn disable_pattern(&mut self, index: usize)
Disable a certain pattern within a query.
This prevents the pattern from matching, and also avoids any resource usage associated with the pattern.
sourcepub fn is_pattern_rooted(&self, index: usize) -> bool
pub fn is_pattern_rooted(&self, index: usize) -> bool
Check if a given pattern within a query has a single root node.
sourcepub fn is_pattern_non_local(&self, index: usize) -> bool
pub fn is_pattern_non_local(&self, index: usize) -> bool
Check if a given pattern within a query has a single root node.
sourcepub fn is_pattern_guaranteed_at_step(&self, byte_offset: usize) -> bool
pub fn is_pattern_guaranteed_at_step(&self, byte_offset: usize) -> bool
Check if a given step in a query is ‘definite’.
A query step is ‘definite’ if its parent pattern will be guaranteed to match successfully once it reaches the step.