NAME
Text::Treesitter::QueryMatch
- stores the result of a tree-sitter query pattern match
SYNOPSIS
Usually accessed indirectly, via Text::Treesitter::QueryCursor
.
use
Text::Treesitter;
my
$ts
= Text::Treesitter->new(
lang_name
=>
"perl"
,
);
my
$query
=
$ts
->load_query_string(
"path/to/query.scm"
);
my
$tree
=
$ts
->parse_string(
$input
);
my
$qc
= Text::Treesitter::_QueryCursor->new;
$qc
->
exec
(
$query
,
$tree
->root_node );
while
(
my
$match
=
$qc
->next_match ) {
my
@captures
=
$match
->captures;
next
unless
$query
->test_predicates_for_match(
$match
, \
@captures
);
foreach
my
$capture
(
@captures
) {
my
$node
=
$capture
->node;
my
$capturename
=
$query
->capture_name_for_id(
$capture
->capture_id );
printf
"%s captures the text <%s>\n"
,
$capturename
,
$node
->text;
}
}
DESCRIPTION
Instances of this class are returned from a Text::Treesitter::QueryCursor to iterate the matches of the most recent query operation.
METHODS
pattern_index
$index
=
$match
->pattern_index;
Returns the index within the query indicating which pattern was responsible for this match.
capture_count
$count
=
$match
->capture_count;
Returns the number of captures made by this pattern.
captures
@captures
=
$match
->captures;
Returns a list of Capture instances, in pattern order. Each will be an instance of a class having the following accessors:
$capture
->node
$capture
->capture_id
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>