Revision history for Text-Treesitter
0.13 2024-08-15
[CHANGES]
* Added a `->parse_file` shortcut wrapper method
* Added a whole-file mode to examples/viewtree.pl
* Use named parameter support of Sublike::Extended
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.