Log message:
tree-sitter: update to 0.25.1.
Fix pkg-config file path.
Features
cli: Specify abi version via env var (#4173)
Bug Fixes
bindings: Correct Zig bindings to expose a language function
lib: Prevent finished_tree assertion failure (#4176)
Documentation
Correct build steps for WASM files
Build System and CI
Use ubuntu-22.04 for x64 builds (#4175)
Bump version to 0.25.1
Other
rust: Correct doc comments
0.25.0
Notices
This is a large release. As such, a few major changes and how to adapt to them \
are outlined below:
web-tree-sitter was rewritten in TypeScript. With that, we also now publish \
the sourcemaps, and debug builds for the library. We also publish both CommonJS \
and ESM modules.
The internal ABI was bumped to 15. The main benefits this brings is that the \
language name, version, supertype info, and reserved words are added to the \
parsers. To use ABI 15, you must have a tree-sitter.json file in your \
repository, since the version information for the parser is pulled from this \
file.
Parsing and Querying should be cancelled using the "progress \
callback", rather than setting a timeout or a cancellation flag, which are \
now deprecated. To do so, use the "parse/query with options" function \
in the bindings you choose to use, in the next release the old way of timing out \
parsing will be removed, which allows us to get rid of our dependency on the \
time.h headers in the core library.
MISSING nodes can now be queried, and queries involving supertypes are \
properly validated now.
The ts_node_child_containing_descendant function was removed; use \
ts_node_child_with_descendant instead (which has nearly the same behavior but \
can also return descendant.)
TSInput now includes a (mandatory) new field DecodeFunction, which allows \
passing a custom decode function. To use the builtin function, pass NULL.
In the DSL, there is now a RustRegex function, which takes in a Rust regex \
as a string. All of the capabilities of Rust's regex engine are available here, \
which allows for some nice features that aren't possible with JavaScript \
regexes.
We've migrated our documentation to mdBook, and greatly improved the docs.
Breaking
Properly handle UTF-16 endianness encoding (#3740)
Bump internal abi to 15 (#3803)
Update playground with new web bindings (#4121)
bindings: Update swift bindings (#4154)
cli: Remove migration code for tree-sitter.json (#4107)
generate: Use regex_syntax::Hir for expanding regexes (#3831)
lib: Remove ts_node_child_containing_descendant (#4107)
lib: Add the ability to specify a custom decode function (#3833)
web: Rewrite the library in TypeScript (#4121)
web: Use the WASM module in the bindings, and not the other way around (#4121)
web: Rename pattern to patternIndex in QueryMatch (#4141)
web: Deprecate Language.query in favor of new Query (#4141)
Features
Drop legacy binding updates (#3734)
Bump version to 0.25 (#3752)
Allow setting the output directory for generated source files (#2614)
Move scripts to xtasks (#3758)
Add CST pretty-printer for parser output (#3762)
Add version subcommand for versioning grammars (#3786)
Add build sha to parser.c header comment (#3828)
Implement a cache for get_column (#2503)
Generate schema in tree-sitter.json (#3947)
Support querying missing nodes (#3887)
Add flag to output css classes instead of inline styles in HTML highlighter \
output (#3879)
Add xtask to bump emscripten-version (#4015)
Add 'reserved word' construct (#3896)
Add Supertype API (#3938)
Support passing in a Rust regex in the grammar dsl (#4076)
Allow parser balancing to be cancellable (#4122)
Remove lazy_static in favor of LazyLock (#4130)
Add and apply eslint config (#4121)
Begin autogenerating web-tree-sitter.d.ts (#4121)
Publish both CJS and ESM files (#4121)
Add a patternIndex field to QueryCapture (#4141)
Improve PredicateStep types (#4141)
Add the semantic version to TSLanguage, and expose an API for retrieving it \
(#4135)
Add error information in the progress callback (#3987)
bindings: Auto-detect scanners (#3809)
bindings: Drop language name from node (#3184)
bindings: Update some binding files (#3952)
bindings: Drop python 3.9 support (#3799)
bindings: Support free-threaded python build (#3799)
bindings: Add opt-in zig bindings (#4144)
bindings: Use cc 1.2 for Rust (#4156)
cli: Verify assertions for every carat in tests, not just the first one (#3927)
cli: Add nushell completions (#4000)
cli: Don't validate email addresses in init command (#3999)
cli: Show parse times in testing output (#3939)
cli: Display parse and edit times separately for parse --time (#4016)
cli: Make input handling agnostic (#4054)
cli: Rework parse to use new input handler (#4054)
cli: Rework query to use new input handler (#4054)
cli: Rework highlight to use new input handler (#4054)
cli: Rework tags to use new input handler (#4054)
cli: Add json summary of parsing (#4048)
cli: Allow test subcommand to include/exclude by corpus test file names (#4095)
cli: Improve readability of parse debug output (#4118)
generate: Add a comment with the tree-sitter version (#3825)
generate: Add .exp and .lib files to gitignore template (#4079)
generate: Explicitly disallow non-terminals in non-terminals (#4111)
generate: Properly filter out unused rules (#4111)
generate: Add an extra field for extra nodes in node-types.json (#4116)
generate: Defer to ABI 14 if tree-sitter.json doesn't exist, rather than \
hard failing (#4156)
highlight: Mark TSHighlighter fields as pub (#3990)
init: Allow dashes in scopes (#4142)
init: Add an optional funding field (#4142)
init: Add a class-name field to grammars (#4142)
init: Add a title field to grammars (#4142)
lib: Wrap subtrees with changes in green circles (#3741)
lib: Add the language name (#3184)
lib: Add ts_parser_parse_with_options (#3843)
lib: Add ts_query_cursor_exec_with_options (#3843)
lib: Use const for TSCharacterRanges (#4027)
lib: Implement Send + Sync for WasmStore (#4130)
loader: Add language_for_configuration (#3816)
loader: Add error message when a tree-sitter.json file is invalid (#3897)
loader: Support multi-barreled file extensions (#3880)...
|