Revision history for Text-Treesitter 0.11 2023-09-18 [CHANGES] * Added `$node->start_row` and similar convenience accessors * Permit `->parse_string_range` to set the start row+column position of returned subnodes, or a `node` directly for convenience * Use `Object::Pad` v0.800 0.10 2023-08-11 [CHANGES] * Added `$ts->parse_string_range` for substring parsing * Added `$qc->next_match_captures` to simplify common usage patterns * `$query->test_predicates_for_match` no longer needs the `$tree` argument * Don't require that callers include the `queries/` part of query file path when calling `->query_file_path`. * Silently ignore any query predicates whose names don't end with '?', so as to skip the directives used by nvim * Optionally interpret injections.scm in examples/highlight.pl 0.09 2023-08-09 [CHANGES] * Added `$ts->query_file_path` * Added `$node->debug_sprintf` * Implement the nvim-inspired `#has-parent?` and `#has-ancestor?` query predicates * Optionally interpret fold.scm in examples/highlight.pl [BUGFIXES] * Query all the field names of the language indexed from 1 * Fix `$node->parent` to return undef when called on the root node 0.08 2023-07-17 [CHANGES] * Added SYNOPSIS example documentation to each module 0.07 2023-06-07 [CHANGES] * Added `$node->child_by_field_name` and `->try_child_by_field_name` accessors * Swap all unit tests to Test2::V0 [BUGFIXES] * Make sure that `$querycursor->next_match` remembers to load Text::Treesitter::QueryMatch (RT148270) * Wrap QueryCursor and QueryMatch objects so that capture nodes are fully wrapped with access to the tree itself (RT148269) 0.06 2023-01-19 [CHANGES] * Handle query predicates * Recognise several common ones - `eq?`, `match?`, `contains?`, `any-of?` and the `not-` prefixed inverted versions of them * Further improvements to highlight.pl: + skip matches on failed predicate tests + define more highlight groups as used by tree-sitter-{perl,pod} 0.05 2023-01-17 [CHANGES] * Added char-counting node start / end accessors * Nicer error message on ts_query_new() failure * Better config file search to closer match `tree-sitter-cli` * Print field names in viewtree.pl for better grammar debugging [BUGFIXES] * Correctly implement Node->parent method * Handle UTF-8 source and query strings correctly; count offsets in chars not bytes 0.04 2023-01-12 [CHANGES] * Remember the original source text in a Tree instance * Remember the Tree instance that generated every Node * Added `->text` accessor on both Tree and Node instances * Read the user's `tree-sitter/config.json` if found * Use the configured `parser-directories` to find lang_dir if not supplied 0.03 2023-01-05 [CHANGES] * Provide a real toplevel `Text::Treesitter` class to wrap the lower-level parts in a more convenient wrapper API * Compile .o files using `-fPIC` because some scanner C++ files will need it * Added `examples/viewtree.pl` as a tree/grammar debugging tool * Lazily load `ExtUtils::CppGuess` as needed because most of the time it isn't. 0.02 2023-01-04 [CHANGES] * Added Text::Treesitter::Query, ::QueryCursor and ::QueryMatch * Rewrote highlight.pl example script to use the query system to extract highlights from the language queries/highlights.scm file 0.01 2023-01-04 First version, released on an unsuspecting world.