The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Revision history for Text-Treesitter

0.12    2023-12-28
        [CHANGES]
         * Implement the `#set!` directive in queries
         * Improvements to examples/highlight.pl:
            + Look for `queries/folds.scm`, not `fold.scm`
            + Recognise more capture names
            + Recognise `@injection.*` format of injections.scm

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.