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;
use Text::Treesitter::QueryCursor;

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>