Christian Clason
de98c6c970
build(deps): bump rquickjs to v0.13.0
CI / sanitize (push) Failing after 15s
CI / build (push) Failing after 16s
CI / check-wasm-stdlib (push) Failing after 15s
CI / checks (push) Has been cancelled
2026-09-09 01:25:17 +02:00
Christian Clason
8351896bea
build(deps): cargo update
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 15s
CI / build (push) Failing after 16s
CI / check-wasm-stdlib (push) Failing after 15s
2026-09-08 09:46:26 +02:00
Will Lillis
072f68c829
feat(generate)!: derive PartialEq + Eq on GenerateError
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 15s
CI / build (push) Failing after 16s
CI / check-wasm-stdlib (push) Failing after 15s
Also use `IoError` more consistently throughout the rest of the project
where its straightforward to do so.
BREAKING CHANGE: Changes public error types for config, generate, and
loader crates.
2026-09-07 17:53:09 -04:00
dependabot[bot]
badf2882c6
build(deps): bump the npm group across 1 directory with 5 updates
...
Bumps the npm group with 5 updates in the /lib/binding_web directory:
| Package | From | To |
| --- | --- | --- |
| [@types/emscripten](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/emscripten ) | `1.41.5` | `1.41.6` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `26.4.0` | `26.4.1` |
| [eslint](https://github.com/eslint/eslint ) | `10.9.1` | `10.10.0` |
| [tsx](https://github.com/privatenumber/tsx ) | `4.23.12` | `4.23.13` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ) | `8.68.0` | `8.69.0` |
Updates `@types/emscripten` from 1.41.5 to 1.41.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/emscripten )
Updates `@types/node` from 26.4.0 to 26.4.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `eslint` from 10.9.1 to 10.10.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v10.9.1...v10.10.0 )
Updates `tsx` from 4.23.12 to 4.23.13
- [Release notes](https://github.com/privatenumber/tsx/releases )
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs )
- [Commits](https://github.com/privatenumber/tsx/compare/v4.23.12...v4.23.13 )
Updates `typescript-eslint` from 8.68.0 to 8.69.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.69.0/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: "@types/emscripten"
dependency-version: 1.41.6
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: "@types/node"
dependency-version: 26.4.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: eslint
dependency-version: 10.10.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: tsx
dependency-version: 4.23.13
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.69.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-09-07 23:46:17 +02:00
dependabot[bot]
9c2c5714cd
build(deps): bump cc from 1.4.4 to 1.4.5 in the cargo group
...
Bumps the cargo group with 1 update: [cc](https://github.com/rust-lang/cc-rs ).
Updates `cc` from 1.4.4 to 1.4.5
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.4.4...cc-v1.4.5 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.4.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-09-07 23:45:04 +02:00
Will Lillis
f430449ab9
fix(rust): address manual-readme lint
...
CI / sanitize (push) Failing after 15s
CI / build (push) Failing after 16s
CI / check-wasm-stdlib (push) Failing after 14s
CI / checks (push) Has been cancelled
Cargo automatically resolves this, so the `Cargo.toml` entries are
redundant.
2026-09-04 14:48:46 -04:00
Will Lillis
068db86ca9
fix(rust): address new assert-is-empty nightly lint
...
The resulting code is arguably uglier, but there is a strong argument
for the improved message when the assert trips.
2026-09-04 14:48:46 -04:00
cui fliter
ee0c20b1f5
fix(cli)!: fix query test capture range matching across lines ( #5917 )
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 15s
CI / build (push) Failing after 16s
CI / check-wasm-stdlib (push) Failing after 15s
Signed-off-by: cuishuang <imcusg@gmail.com>
BREAKING CHANGE: changes the signature of `assert_expected_captures`, which is exposed publicly when tree-sitter-cli is consumed as a library.
2026-09-03 23:25:21 -04:00
dependabot[bot]
702ba49a6a
build(deps): bump @humanfs/node in /crates/cli/eslint
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 16s
CI / check-wasm-stdlib (push) Failing after 15s
Bumps [@humanfs/node](https://github.com/humanwhocodes/humanfs/tree/HEAD/packages/node ) from 0.16.7 to 0.16.8.
- [Release notes](https://github.com/humanwhocodes/humanfs/releases )
- [Changelog](https://github.com/humanwhocodes/humanfs/blob/main/packages/node/CHANGELOG.md )
- [Commits](https://github.com/humanwhocodes/humanfs/commits/node-v0.16.8/packages/node )
---
updated-dependencies:
- dependency-name: "@humanfs/node"
dependency-version: 0.16.8
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-09-03 16:35:52 +02:00
dependabot[bot]
b9c5eb2b73
build(deps): bump @humanfs/node in /lib/binding_web
...
Bumps [@humanfs/node](https://github.com/humanwhocodes/humanfs/tree/HEAD/packages/node ) from 0.16.7 to 0.16.8.
- [Release notes](https://github.com/humanwhocodes/humanfs/releases )
- [Changelog](https://github.com/humanwhocodes/humanfs/blob/main/packages/node/CHANGELOG.md )
- [Commits](https://github.com/humanwhocodes/humanfs/commits/node-v0.16.8/packages/node )
---
updated-dependencies:
- dependency-name: "@humanfs/node"
dependency-version: 0.16.8
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-09-03 16:35:42 +02:00
Yudai Takada
351bd71e52
fix(lib): decode UTF-16 surrogate pairs with input endianness ( #5912 )
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 16s
CI / build (push) Failing after 16s
CI / check-wasm-stdlib (push) Failing after 15s
Problem: Parsing UTF-16BE source containing supplementary-plane characters, such as `let emoji = "😀 "`, decoded the emoji as two isolated surrogates on little-endian hosts, causing incorrect lexer lookahead and potentially shifted token boundaries.
Soluton: Fix the trailing surrogate byte-order conversion in both UTF-16LE and UTF-16BE decoders and adds a regression test for U+1F600.
2026-09-03 08:21:08 +02:00
dependabot[bot]
c206ad1e6a
build(deps): bump the npm group across 1 directory with 3 updates
...
CI / sanitize (push) Failing after 15s
CI / build (push) Failing after 15s
CI / check-wasm-stdlib (push) Failing after 15s
CI / checks (push) Has been cancelled
Bumps the npm group with 3 updates in the /lib/binding_web directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ), [eslint](https://github.com/eslint/eslint ) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ).
Updates `@types/node` from 26.2.0 to 26.4.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `eslint` from 10.9.0 to 10.9.1
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v10.9.0...v10.9.1 )
Updates `typescript-eslint` from 8.67.0 to 8.68.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.68.0/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 26.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: eslint
dependency-version: 10.9.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.68.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-31 23:52:08 +02:00
dependabot[bot]
51da0190f5
ci: bump vmactions/omnios-vm from 1.3.4 to 1.3.6 in the actions group
...
Bumps the actions group with 1 update: [vmactions/omnios-vm](https://github.com/vmactions/omnios-vm ).
Updates `vmactions/omnios-vm` from 1.3.4 to 1.3.6
- [Release notes](https://github.com/vmactions/omnios-vm/releases )
- [Commits](https://github.com/vmactions/omnios-vm/compare/v1.3.4...v1.3.6 )
---
updated-dependencies:
- dependency-name: vmactions/omnios-vm
dependency-version: 1.3.6
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-31 23:51:47 +02:00
Amaan Qureshi
e5cbeb74eb
nix: fix the flake
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 15s
CI / build (push) Failing after 16s
CI / check-wasm-stdlib (push) Failing after 14s
Deploy Docs / deploy-docs (push) Has been cancelled
Check Wasm Exports / check-wasm-exports (push) Has been cancelled
2026-08-30 17:33:12 -04:00
Amaan Qureshi
ea9ddbe190
docs: replace mdbook-admonish with mdBook admonitions
2026-08-30 17:33:12 -04:00
Will Lillis
aa1b924997
fix(generate): defer token rewrites until lexical expansion
...
In a future feature, `RulePool` nodes can be shared between lexical and
syntax roots. No grammars generated by grammar.js/grammra.json are affected
by this issue, as they lead to a tree pool rather than a DAG.
With a DAG `RulePool` representation, however, rewriting tokens during
extraction can destroy a token body before lexical expansion consumes
it and can renumber shared syntax nodes more than once.
Record terminal rewrites while inspecting the original pool, expand tokens
and separators first, then commit the rewrites and renumber each reachable
syntax node once. Resolve grammar metadata against the pending rewrites
before mutating the pool.
2026-08-30 14:23:29 -04:00
Will Lillis
1b64a459ff
perf(generate): flatten Choices directly into the children tail
2026-08-30 14:23:29 -04:00
Will Lillis
1e070eb28e
perf(generate): build Seq and Repeat child ranges without temporaries
...
`try_seq` reserves a `Seq`'s child range up front and fills slots as
recursion produces each member. The `Repeat` arm builds
`Choice(repeat(x), blank)` directly, skipping the `choice` helper.
Slightly faster and less memory used.
2026-08-30 14:23:29 -04:00
Christian Clason
91e875ad7b
chore: start working on v0.28
2026-08-30 19:50:28 +02:00
Arne Bertrand
6070dbfefd
fix(nix): remove Dockerfile reference from flake ( #5892 )
...
Fixup for https://github.com/tree-sitter/tree-sitter/pull/5872 .
2026-08-30 16:49:12 +00:00
Christian Clason
f52e78cb9f
build(deps): cargo update
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 15s
CI / build (push) Failing after 15s
CI / check-wasm-stdlib (push) Failing after 14s
2026-08-30 09:29:09 +02:00
Will Lillis
49dbf70ebd
fix(rust): ensure C returned pointers are non-null in
...
`Node::grammar_name` and `Node::kind`
2026-08-30 02:58:20 -04:00
Will Lillis
9540ea3b10
fix(lib): reject an old_tree from a different language
2026-08-30 02:58:20 -04:00
Will Lillis
3e7be91c46
fix(rust): reject out-of-range node kind ids
...
`node_kind_is_named`, `node_kind_is_visible` and `node_kind_is_supertype`
forwarded their `u16` straight to `ts_language_symbol_type`, which indexes
`symbol_metadata` unchecked. Bound the id by `node_kind_count()`.
2026-08-30 02:58:20 -04:00
Will Lillis
f47170927d
fix(lib): bounds-check symbol and state ids in language lookups
...
`ts_language_next_state` indexed the parse table with the caller's `state`
and `symbol` without validating either, and `ts_language_subtypes` read
`symbol_metadata` before checking `supertype` was in range.
2026-08-30 02:58:20 -04:00
Will Lillis
5ddf71b9f4
fix(rust)!: expose QueryMatch::captures as a method
...
The field handed out a slice whose lifetime outlived the streaming-iterator
loan it came from. An accessor reborrowing through `&self` bounds it correctly.
BREAKING CHANGE: In the rust bindings, replace `m.captures` with `m.captures()`.
2026-08-30 02:58:20 -04:00
cuishuang
efa0dd9a36
fix(cli): correct zero-based positions for --edits
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 15s
CI / build (push) Failing after 15s
CI / check-wasm-stdlib (push) Failing after 15s
Signed-off-by: cuishuang <imcusg@gmail.com>
2026-08-29 21:06:30 -04:00
Christian Clason
16d5e9d227
ci(checks): add lint-toml step using taplo
CI / checks (push) Waiting to run
CI / build (push) Failing after 15s
CI / check-wasm-stdlib (push) Failing after 14s
CI / sanitize (push) Failing after 14s
Deploy Docs / deploy-docs (push) Has been cancelled
2026-08-29 11:10:37 +02:00
Will Lillis
3ac04a64f7
docs: add taplo instructions
2026-08-29 11:10:37 +02:00
Will Lillis
d9cb739430
fix(toml): drop align_entries = true from .taplo.toml
...
This key was being applied inconsistently depending on nesting level.
2026-08-29 11:10:37 +02:00
Will Lillis
7a2dd61a7c
fix(xtask): preserve format padding when updating Cargo.toml files
2026-08-29 11:10:37 +02:00
Christian Clason
a520ad0fc3
chore: remove .dockerignore
...
Fixup for #5872 , which missed the hidden file.
2026-08-29 10:30:35 +02:00
Christian Clason
da219f40f8
chore: remove Zed editor config
...
Problem: Editor-specific settings should not be part of the global
repository. (Only config files that control standard tooling in order to
enforce, e.g., formatting policies are appropriate to commit -- and only
if covered by CI.)
Solution: Drop the Zed config files from the repo.
2026-08-29 10:30:35 +02:00
Christian Clason
664e9a6786
build(deps)!: bump wasi-sdk to v34
...
CI / checks (push) Waiting to run
Deploy Docs / deploy-docs (push) Waiting to run
CI / sanitize (push) Failing after 15s
CI / build (push) Failing after 16s
CI / check-wasm-stdlib (push) Failing after 15s
Check Bindgen Output / check-bindgen (push) Has been cancelled
Check Wasm Exports / check-wasm-exports (push) Has been cancelled
Breaking change: LLVM 23 replaces `wasm32-wasi` target with
`wasm32-wasip1`, requiring updating the flags used by
`tree-sitter build --wasm`.
2026-08-27 10:35:19 +02:00
Christian Clason
fcef970e81
build(deps): bump wasmtime-c-api to v48.0.1
2026-08-27 09:37:57 +02:00
Kyuhwan Lee
8933cb7b40
docs(web): add WASM version compatibility section
...
Add documentation about version compatibility requirements between
web-tree-sitter parser ABIs for WASM file generation.
This helps users understand why Language.load() might fail when using
pre-built WASM files from third-party packages that were built with
incompatible tree-sitter-cli versions.
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2026-08-25 17:34:56 -04:00
Will Lillis
82639170a7
docs: specify Emscripten version constraints for web binding builds
2026-08-25 17:34:37 -04:00
dependabot[bot]
129d8cd141
build(deps): bump eslint
...
Bumps the npm group with 1 update in the /lib/binding_web directory: [eslint](https://github.com/eslint/eslint ).
Updates `eslint` from 10.8.1 to 10.9.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v10.8.1...v10.9.0 )
---
updated-dependencies:
- dependency-name: eslint
dependency-version: 10.9.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-25 09:59:01 +02:00
dependabot[bot]
f3a9521894
build(deps): bump cc from 1.4.3 to 1.4.4 in the cargo group
...
Bumps the cargo group with 1 update: [cc](https://github.com/rust-lang/cc-rs ).
Updates `cc` from 1.4.3 to 1.4.4
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.4.3...cc-v1.4.4 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.4.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-25 09:58:43 +02:00
Peter Stenger
0be5f898ad
fix(web): map Node-only specifiers to false via browser field
...
Browser bundlers (esbuild, webpack, vite, rollup) statically discover the
`await import("fs/promises")` and `await import("module")` calls in the
shipped ESM bundle and try to resolve them, even though both sit in
Node-only branches that never execute in a browser.
Adding a top-level `browser` field tells bundlers to substitute empty
stubs for these specifiers when targeting the browser. The runtime gates
(`globalThis.process?.versions.node` and `ENVIRONMENT_IS_NODE`) already
prevent the stubs from ever being invoked.
Fixes #5545 .
2026-08-25 00:27:50 -04:00
katrinafyi
ac17c8d003
playground: set default LANGUAGE_BASE_URL to "." to fix subfolder hosting
...
Previously with the empty string base URL, the playground would not work when hosted at a subfolder of the domain. This is because playground.js has this code:
const url = `${LANGUAGE_BASE_URL}/tree-sitter-${newLanguageName}.wasm`;
With an empty string, it would look for wasm at the root of the website and 404.
Github code search shows that this is an issue which lots of people have run into, and everyone has to work around it: https://github.com/search?q=%2FLANGUAGE_BASE_URL+%3D+%22%22%2F+-language%3AHTML&type=code
Related to https://www.github.com/tree-sitter/tree-sitter/issues/5230
2026-08-24 19:41:26 -04:00
Will Lillis
c6c137a329
fix(generate): avoid mutating inherited reserved sets
...
Copy the base grammar's reserved set map before adding or replacing sets
in a derived grammar.
2026-08-23 17:08:31 -04:00
Will Lillis
1cb91662a5
fix(generate): validate symbol-only grammar fields
...
Require `word`, `conflicts`, `inline`, and `supertypes` callbacks
to return named grammar symbols instead of silently accepting values
that produce undefined names.
Restrict `precedences` lists to named rules and precedence names, and
preserve the existing handling of undefined and duplicate `inline`
rules.
2026-08-23 17:08:31 -04:00
Mike Arndt
7ca101cb7e
fix(cli): align grammar DSL declarations with runtime
...
Model grammar() as returning the evaluated grammar beneath a `grammar`
property, with callbacks replaced by their normalized values and
runtime-initialized fields represented as required properties.
Correct the evaluated rule types for named precedences and regular
expression flags. Narrow symbol-only callbacks such as `conflicts`,
`inline`, `supertypes`, and `word`, and expose the inherited values
passed to `extras` and `reserved` callbacks.
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2026-08-23 17:08:31 -04:00
Will Lillis
dad7d0bd88
generate: use a single buffer for the string pool's backing store
...
This representation slightly lowers walltime and allocations, but also
makes `StrPool` `Send`.
2026-08-23 14:15:16 -04:00
Will Lillis
f9dcb005cd
fix(generate)!: use node identities in node-types bookkeeping
...
Some node-types bookkeeping still used the type name without its named
status. This caused anonymous nodes to inherit extra metadata from named
nodes with the same text, and could create false supertype cycles when a
named supertype and anonymous alias shared a name.
Key extra metadata and supertype dependencies by the complete
(type, named) identity.
Reject named aliases that collide with a canonical supertype. Such an
identity cannot be represented as both a concrete node and an abstract
supertype in node-types.json, and previously caused generation to panic.
All output entries now come from the map keyed by (type, named), so no
two entries can reach the final sort with the same identity. Remove the
unreachable root and extra tie-breakers and the now-redundant deduplication.
BREAKING CHANGE: Alters a public error enum for the generate crate.
2026-08-23 13:40:32 -04:00
Will Lillis
78267a0a96
fix(generate): merge anonymous token aliases in node-types.json
...
When an anonymous token alias and an anonymous syntax-node alias have
the same name, node-types.json emits two entries with the same type and
named status. For example,
```
alias($._node, "same")
```
and
```
alias("!", "same")
```
produce separate anonymous "same" entries. Add anonymous tokens to
the node-type map instead. When a token shares an identity with a
structured node, retain its possible children and fields but mark
them as optional because the token appearance is a leaf.
2026-08-23 13:40:32 -04:00
Will Lillis
00beb27f83
fix(generate): distinguish named and anonymous node types
...
A node-types entry is identified by both its type name and its `named`
value. The generator only keyed accumulated entries by name, so aliases
like
alias($._node, $.same)
alias($._node, "same")
were incorrectly merged into one entry. Whichever alias was processed
first determined the entry's `named` value, and the structures of two
distinct node types could be combined.
Key accumulated entries by `NodeTypeRef` so named and anonymous nodes
with the same type name remain separate.
2026-08-23 13:40:32 -04:00
Will Lillis
7bd12334c4
fix(generate): include aliased supertypes in node-types.json
...
Aliasing a supertype makes the aliased occurrence appear as a regular
node in the syntax tree. For example,
```
alias($.expression, $.expression_target)
```
can produce:
```
(expression_target (identifier))
```
Previously, node-types generation skipped the source supertype entirely.
It could reference `expression_target` as a field or child type without
emitting a corresponding top-level entry for it.
Continue emitting the canonical `expression` entry with its `subtypes`,
but pass aliased appearances through regular node generation so their
children and fields are recorded and merged normally.
2026-08-23 13:40:32 -04:00
Will Lillis
54a46eb49b
fix(rust): remove must_use attribute from Tree::changed_ranges
...
`ExactSizeIterator` implements `std::iter::Iterator`, which is already
`must_use`.
2026-08-23 09:45:42 +02:00
Christian Clason
2452dc7a71
chore: remove Dockerfile
...
Problem: The committed Dockerfile is not used by the standard tooling in
this repo and therefore bitrots freely, which increases maintenance
burden on the (non-Docker-using) maintainers.
Solution: Drop the Dockerfile from the repo.
2026-08-23 00:35:12 -04:00
Amaan Qureshi
74b7d0c951
feat!: add an eof function
...
This commit adds an `eof()` function for grammars, which is easier to
use than the NUL byte directly. It compiles down to a constraint that
the enclosing production can only reduce at end of input, not to a
shiftable token.
BREAKING CHANGE: Public error types for `tree-sitter-generate` were modified.
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2026-08-21 20:02:58 -04:00
Will Lillis
baad4174e5
fix(generate)!: hold IoError inside GenerateError::GrammarPath
2026-08-20 22:11:42 -04:00
Will Lillis
cde84508ac
fix(generate)!: error when nonexistent _file_ path is passed to
...
`generate_parser_in_directory`.
2026-08-20 22:11:42 -04:00
Max Brunsfeld
43623ec9bf
Upgrade to latest wasmtime, improve robustness and perf of wasm-based parsing ( #5847 )
...
* build(deps): upgrade wasmtime C API to 48.0.0
Upgrade the Rust and Zig Wasmtime dependencies and enable reference values with the null GC collector.
Wasmtime 48 requires a newer Rust toolchain, whose Clippy version identifies three item helpers that can be const. Mark them const so the workspace continues to pass Clippy with warnings denied.
* feat(benchmark): support Wasm grammars
* perf(wasm): cache language function handles
* fix(wasm): improve validation and failure cleanup
Bounds-check dylink metadata parsing, require exact import and export names, and restore memory and function-table allocation offsets when language loading fails.
* fix(wasm): copy the complete supertype map
2026-08-20 21:02:11 +00:00
Will Lillis
fe3fe327e2
fix(generate): correct test assertion for inlined supertype warning
2026-08-20 02:47:10 -04:00
Will Lillis
03ae6710cd
fix(ci): run all workspace tests
...
Without `--workspace`, all generate tests were silently skipped.
2026-08-20 02:47:10 -04:00
Amaan Qureshi
067f85e5a2
generate: hold StrIds in node-types JSON output
...
The JSON output types now hold ids from the string pool instead of
cloning into owned `String`s, which makes `NodeTypeJSON` `Copy` and
drops most allocations when building the output.
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2026-08-19 20:30:17 -04:00
Amaan Qureshi
5800563fe7
generate: refactor get_variable_info and generate_node_types_json
...
This splits both functions into small, focused helpers with no
behavioral change.
2026-08-19 20:30:17 -04:00
Amaan Qureshi
14c158bbba
generate: warn when a symbol is both a supertype and inlined
...
Currently, a symbol listed in both `supertypes` and `inline` produces
a phantom supertype entry in `node-types.json` for a rule that can
never appear in a tree. `intern_symbols` now drops the supertype with
a warning. A hard error would break 29 published grammars, including
python, go, ruby, rust, and scala, so that that decision is deferred
to the next breaking release. Fixes #5218
2026-08-19 20:30:17 -04:00
dependabot[bot]
f235c2f1c3
build(deps): bump the cargo group with 4 updates
...
Bumps the cargo group with 4 updates: [bstr](https://github.com/BurntSushi/bstr ), [cc](https://github.com/rust-lang/cc-rs ), [clap_complete_nushell](https://github.com/clap-rs/clap ) and [thiserror](https://github.com/dtolnay/thiserror ).
Updates `bstr` from 1.13.0 to 1.13.1
- [Commits](https://github.com/BurntSushi/bstr/compare/1.13.0...1.13.1 )
Updates `cc` from 1.4.2 to 1.4.3
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.4.2...cc-v1.4.3 )
Updates `clap_complete_nushell` from 4.6.1 to 4.6.2
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete_nushell-v4.6.1...clap_complete_nushell-v4.6.2 )
Updates `thiserror` from 2.0.19 to 2.0.20
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/2.0.19...2.0.20 )
---
updated-dependencies:
- dependency-name: bstr
dependency-version: 1.13.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: cc
dependency-version: 1.4.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete_nushell
dependency-version: 4.6.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: thiserror
dependency-version: 2.0.20
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-18 10:39:56 +02:00
dependabot[bot]
95eaaa2130
build(deps): bump the npm group across 1 directory with 3 updates
...
Bumps the npm group with 3 updates in the /lib/binding_web directory: [esbuild](https://github.com/evanw/esbuild ), [tsx](https://github.com/privatenumber/tsx ) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ).
Updates `esbuild` from 0.28.1 to 0.28.2
- [Release notes](https://github.com/evanw/esbuild/releases )
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md )
- [Commits](https://github.com/evanw/esbuild/compare/v0.28.1...v0.28.2 )
Updates `tsx` from 4.23.11 to 4.23.12
- [Release notes](https://github.com/privatenumber/tsx/releases )
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs )
- [Commits](https://github.com/privatenumber/tsx/compare/v4.23.11...v4.23.12 )
Updates `typescript-eslint` from 8.66.0 to 8.67.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.67.0/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: esbuild
dependency-version: 0.28.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: tsx
dependency-version: 4.23.12
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.67.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-18 10:37:31 +02:00
dependabot[bot]
dff1fd868c
build(deps): bump esbuild and vite in /lib/binding_web
...
Bumps [esbuild](https://github.com/evanw/esbuild ) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ). These dependencies needed to be updated together.
Updates `esbuild` from 0.27.7 to 0.28.1
- [Release notes](https://github.com/evanw/esbuild/releases )
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md )
- [Commits](https://github.com/evanw/esbuild/compare/v0.27.7...v0.28.1 )
Updates `vite` from 7.3.2 to 7.3.6
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/v7.3.6/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v7.3.6/packages/vite )
---
updated-dependencies:
- dependency-name: esbuild
dependency-version: 0.28.1
dependency-type: indirect
- dependency-name: vite
dependency-version: 7.3.6
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-15 10:13:38 +02:00
Max Brunsfeld
0e2af0d8d1
Allow using Tree-sitter rust lib in multi-threaded web apps compiled to wasm32-unknown-unknown ( #5851 )
...
* feat(wasm): make syntax trees sendable
* test(wasm): transfer trees across workers
* test(wasm): use JSON grammar for tree transfer
* test(wasm): edit trees across workers
* test(wasm): share dlmalloc with tree-sitter
* test(wasm): simplify worker tree exchange
* test(wasm): drive tree exchange from Rust
* test(wasm): split sendable-tree xtask
* test(wasm): generalize Rust web fixture
* test(wasm): exercise parallel Rust tree access
* fix(wasm): use Rust global allocator for C core
* test(wasm): use default Rust allocator
* feat(wasm): support external scanners in Rust web apps
* Simplify example further, add a readme
* Regenerate wasm-stdlib
* Fix wasm_stdlib check script
* Vendor the Wasm standard library subset
* Test Unicode Ruby scanner behavior in Wasm
* Make Wasm tree languages instance-aware
* Test multi-threaded use of queries in wasm32-unknown
* Refactor reference-counted language storage
* Check ABI version compat before loading rest of language
* 🎨 Remove redundant #ifdef block
* Reject unsupported Rust Wasm builds on 0.26
2026-08-14 17:05:42 -07:00
Will Lillis
21e3614b8d
perf(lib): fast path for ASCII characters in ts_lexer__advance
...
Yields a 0-5% improvement on parse speed (very grammar dependent).
2026-08-14 18:11:27 +02:00
Will Lillis
730946cfd5
perf(lib): fast path for ASCII characters in ts_lexer__get_lookahead
...
Yields a ~2% improvement on parse speed.
2026-08-14 18:11:27 +02:00
Christian Clason
277f53f886
build(swift)!: drop Package.swift
...
Problem: `Package.swift` build script is unmaintained and leads to build
errors.
Solution: Remove `Package.swift`; downstream tools should rely on the
swift-tree-sitter bindings (or, if they want a custom bare-metal build,
handle this in their own build scripts).
2026-08-14 12:51:38 +02:00
Christian Clason
f8e735212b
build(deps): bump binaryen to v132
2026-08-14 09:33:39 +02:00
Tim Vermeulen
f30ee2b300
fix(parser): nest error children during recovery
2026-08-14 00:51:11 -04:00
Tim Vermeulen
869638f6cf
fix(lib): accumulate error costs through hidden error nodes
2026-08-14 00:51:11 -04:00
Will Lillis
c279989118
fix(xtask): check for vitest rather than chai and mocha
...
`test::run_wasm` gated dependency installation on `node_modules/chai` and
`node_modules/mocha`. Neither is a dependency (vitest is used instead),
so the check never passed and every `cargo xtask test-wasm`
reran `npm install`.
2026-08-14 00:13:54 -04:00
Will Lillis
c68605f18d
fix(rust)!: tie language string lifetimes to the proper containers
...
`Node::kind`, `Node::grammar_name`, the field name accessors,
`TreeCursor::field_name`, and the `Language` name lookups returned `&'static
str` while pointing into storage owned by the `TSLanguage`. Releasing the last
handle to a Wasm language frees that storage.
`Node` and `TreeCursor` now return `&'tree str`, which is ok because
`ts_tree_new` takes a reference to the language via `ts_language_copy` and
holds it until `ts_tree_delete`. The `Language` lookups return strings borrowed
from `&self`.
2026-08-14 00:13:54 -04:00
Will Lillis
7be497a14e
fix(web)!: report null when lookahead iterator is not positioned
...
`currentType` and `currentTypeId` return `null` before the first iteration
step, after exhaustion, and after a reset.
`currentType` also falls back to the language's own name table instead of the
literal 'ERROR' when `Language.types` has no entry (auxiliary symbols). Other
bindings report `end` where this one reported 'ERROR'.
2026-08-14 00:13:54 -04:00
Will Lillis
081929092f
fix(rust)!: make lookahead accessors fallible and iteration fused
...
`current_symbol` and `current_symbol_name` return an `Option` (`None` when the
iterator is not positioned on a symbol). Change `iter_names`'s item from
`&'static str` to `&str`.
2026-08-14 00:13:54 -04:00
Will Lillis
7bf4a10995
fix(lib)!: make lookahead iterator exhaustion sticky and retain its language
...
Track the iterator's phase so exhaustion is sticky, and gate the symbol name on
it, so `NULL` means "not positioned on a symbol".
`ts_lookahead_iterator_new` was also the only language consuming constructor
that did not `ts_language_copy`, so an iterator outliving a wasm language read
freed memory. Retain in `_new` and `_reset`, release in `_delete`.
Previously:
- `ts_lookahead_iterator__next` left a small parse state's cursor one past its
group end, so re-advancing an exhausted iterator resumed returning `true` and
walked through the rest of `ts_small_parse_table` and off the end of it.
- `ts_lookahead_iterator_current_symbol_name` returned `NULL` only when the
exhausted symbol index happened to fall outside the names table, so a grammar
with aliases returned a real but wrong name instead.
2026-08-14 00:13:54 -04:00
Will Lillis
721b211168
fix(generate)!: reject non-ASCII byte classes in (?-u:...) patterns
...
`(?-u:...)` switches `regex_syntax` to matching raw bytes, but the lexer
dispatches on decoded characters, so `expand_regex` converted the byte
class with a u8 cast. This is exact for ASCII bytes, and silently
misleading for anything aboove 0x80.
This is not reachable from grammar.js (node and QuickJS both reject
`(?-u:...)`). This change is to guard against future JS runtime changes,
as well as alternative frontends to the generate crate.
2026-08-14 00:13:39 -04:00
Will Lillis
2b15649f93
fix(generate): fold case-insensitive patterns at the AST leaves
...
A previous fix moved case folding for `/i` patterns out of `regex_syntax` and
into `expand_regex`, so folding could drop the two non-ASCII code points
Unicode simple folding maps onto ASCII letters: the long s `ſ` (U+017F)
onto `s`, and the Kelvin sign `K` (U+212A) onto `k`. Left in, they leak
into otherwise-ASCII tokens and stop those tokens from being extracted as
keywords.
By that point, though, the HIR has already turned a negated class into a
complement, so folding it applies the fold on the wrong side of the
negation. `(?i)[^a-z]` folds a set that contains `A-Z`, which re-admits
`a-z` and leaves a class matching very nearly everything.
`regex_syntax` folds each leaf of a class expression before applying that
leaf's negation and the set algebra above it. Keep that order and change
only the fold: walk the AST, replace each leaf with its fold, and translate
with `case_insensitive(false)`.
2026-08-12 23:40:32 -04:00
Jason Boatman
18cc71a6d9
feat(lib): add state to missing nodes.
...
This allows them to return possible missing values from a `LookaheadIterator`.
2026-08-12 23:39:44 -04:00
Will Lillis
816a2a0c15
refactor(rust): trim unused imports ( #5845 )
...
* Importing `char` brings deprecated methods into scope in some cases.
* Importing `str` isn't necessary in many other cases.
2026-08-12 14:27:52 +02:00
Will Lillis
42f33fe2f8
fix(query): correctly set a state's skipped_quantifier flag when a
...
zero quantifier skip is performed.
The zero-skip branch currently sets skipped_quantifier unconditionally.
That flag is correct only when the quantified step and its skip target
are _siblings_ at the same query depth. Otherwise, setting it allows for
a "leak" and disables unrelated, "outer" anchors.
2026-08-10 23:59:11 -05:00
dependabot[bot]
5c2533bb7b
build(deps): bump the cargo group with 3 updates
...
Bumps the cargo group with 3 updates: [cc](https://github.com/rust-lang/cc-rs ), [clap](https://github.com/clap-rs/clap ) and [clap_complete](https://github.com/clap-rs/clap ).
Updates `cc` from 1.4.0 to 1.4.1
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.4.0...cc-v1.4.1 )
Updates `clap` from 4.6.5 to 4.6.6
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.6.5...clap_complete-v4.6.6 )
Updates `clap_complete` from 4.6.8 to 4.6.9
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.6.8...clap_complete-v4.6.9 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.4.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.6.6
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-version: 4.6.9
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-10 23:42:21 +02:00
dependabot[bot]
6ea9a7c031
build(deps): bump the npm group across 1 directory with 4 updates
...
Bumps the npm group with 4 updates in the /lib/binding_web directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ), [eslint](https://github.com/eslint/eslint ), [tsx](https://github.com/privatenumber/tsx ) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ).
Updates `@types/node` from 26.1.2 to 26.2.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `eslint` from 10.8.0 to 10.8.1
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v10.8.0...v10.8.1 )
Updates `tsx` from 4.23.1 to 4.23.11
- [Release notes](https://github.com/privatenumber/tsx/releases )
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs )
- [Commits](https://github.com/privatenumber/tsx/compare/v4.23.1...v4.23.11 )
Updates `typescript-eslint` from 8.65.0 to 8.66.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.66.0/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 26.2.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: eslint
dependency-version: 10.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: tsx
dependency-version: 4.23.11
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.66.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-10 23:40:39 +02:00
Will Lillis
543734d286
feat(test): allow corpus tests to use cst outputs
...
This is already exposed for consumers via the CLI, and is a natural way
to express some test expectations over the sexp form.
Also clean up some repeated logic in the internal test code, and narrow
the cst rendering return type to `std::io::Result` rather than
`anyhow::Result`.
2026-08-09 15:48:37 -05:00
Will Lillis
5fae914f8f
fix(query): correctly identify MISSING nodes in queries
2026-08-09 15:48:07 -05:00
Will Lillis
1b916ab754
ci: increase nvim-ts generate max jobs to 10
2026-08-09 12:28:50 -05:00
Will Lillis
fad0a62a35
perf(generate): pool parse-table action lists
...
Every (state, terminal) parse-table entry stored its action list inline as a
32-byte `ParseTableEntry`, but across a grammar those lists are ~98-99% _duplicates_.
The number of distinct lists is a few thousand regardless of grammar size, while
total entries scale into the hundreds of thousands.
Store each unique action list once in a shared `ActionListPool` (a flat arena of
actions plus `(offset, len)` ranges) and replace the inline entry with a 4-byte
`ActionListId` (a pool index with the `reusable` flag packed into the high bit).
- intern_table converts the freshly built `ParseTable<ParseTableEntry>` into
`ParseTable<ActionListId>`.
- minimize carries and operates on the 4-byte ids. The three global state
renumberings rewrite Shift targets once at the pool level
(`remap_terminal_references`), while the per-state unit-reduction redirects
copy the changed list into a new slot (COW). `mark_fragile_tokens` becomes a
free bit flip on the id.
- `canonicalize` dedups and compacts the pool once before `render`, dropping the
dead and duplicate slots the remaps and COW leave behind. `render` assigns the
output action-list offsets directly.
Yields ~7% wall time reduction, ~12% peak rss reduction.
2026-08-09 12:28:50 -05:00
Will Lillis
dbcdd0416b
perf(generate): shrink parse/lex/production ids from usize to u32
...
`ParseStateId`, `LexStateId`, `ProductionInfoId`, and `ReservedWordSetId`
each held a `usize`, while the runtime stores state/field ids as `u16` (so
`u32` has plenty of headroom). Shrinking them saves space for every parse-table
entry, and a number of other data structures.
Reduces wall time by 2-5%, peak rss by 9-12%.
2026-08-09 12:28:50 -05:00
Will Lillis
87d14ddfc6
generate: use the LexStateId typedef for lex state ids
...
Lex state ids were passed as bare usize in several spots. Route them
through the existing `LexStateId` typedef.
2026-08-09 12:28:50 -05:00
Will Lillis
142c60dca1
perf(generate): memoize auxiliary node info within each state
...
`get_auxiliary_node_info` scans every entry in the item set to collect the
non-auxiliary parents of a given auxiliary symbol. It was called once per
entry whose next symbol is auxiliary, and the same auxiliary symbol recurs
across many entries in a single state (a state's GOTO on a repeat symbol is
shared by every item advancing over it), so the same full scan was repeated
many times per state. Memoize the result per symbol within a single
`add_actions` call.
Reduces wall time 1-4%, rss flat.
2026-08-09 12:28:50 -05:00
Will Lillis
b14413e4f4
perf(generate): inline single-action parse table entries
...
`ParseTableEntry` held a `Vec<ParseAction>` per entry. `ActionList` keeps up
to one action inline and spills to a Vec only for conflict entries.
Reduces walltime by >20%, peak rss by ~30%.
2026-08-09 12:28:50 -05:00
Will Lillis
2a81995058
perf(generate): memoize get_production_id
...
The production info depends only on the production, but was recomputed and
deduplicated via a linear deep-equality scan over production_infos for every
reduce item in every state. Cache `prod_id` -> `ProductionInfoId`.
Wall time reduction 0-3%, peak rss neutral.
2026-08-09 12:28:50 -05:00
Will Lillis
d6ae19cc6d
perf(generate): intern lookahead TokenSets
...
`ParseItemSetEntry` stores a `LookaheadSetId` into a `LookaheadSetPool` instead
of an owned `TokenSet`. Ids are canonical, so entry hash/eq/clone are integer
ops and state dedup stops walking set words. Unions and single-token inserts
are memoized by id, so the transitive closure and successor-kernel construction
stop re-materializing the same unions per state. Closure additions carry interned
ids with word-token membership precomputed.
For cpp, 3566 distinct lookahead sets back all 49,992 states. For ruby 2000 sets
for 91,991 states, and rust 646 for 16,796.
Reduces wall time by 10-15%, peak rss by 3-5%.
2026-08-09 12:28:50 -05:00
Will Lillis
6659ff57eb
perf(generate): vectorize minimize's token_conflicts with precomputed bitsets
...
The state-merge pass's `token_conflicts` scanned every terminal entry of the
other state per non-shared token. Precompute flat, word-aligned bitsets,
`ConflictBits`, so each call is a handful of word ANDs.
Yields a 5-6% wall time reduction on large grammars, and flat to ~1%
loss on small grammers. Peak RSS unchanged.
2026-08-09 12:28:50 -05:00
Will Lillis
b304ac9e56
perf(generate): stop duplicating kernel item sets in parse_state_info
...
Every state's kernel set was cloned into `parse_state_info` even though the
identical set already lives as the state-dedup map key at the same index
(state ids are the map's insertion order). `ParseStateInfo` now holds the
preceding-symbol sequences plus the dedup map moved out of the builder,
allowing the report path to read kernels via `get_index`. Drops the
duplicate kernel storage, allowing for a small reduction in wall time
and peak rss (1-3%).
2026-08-09 12:28:50 -05:00
Will Lillis
2ce7b409a8
perf(generate): replace coincident state lists with a without-word bitset
...
`CoincidentTokenIndex` kept a `Vec<ParseStateId>` per token pair whose
only user was keyword identification asking one question: "do all states
where a given pair coincides also allow the word token?" Track that
directly as a second bitset built in the same pass.
Reduces walltime by ~7% for small grammars (i.e. Go), and 20-25% for
larger grammars (i.e. Rust, cpp). Reduces peak rss by ~20% for smaller
grammars and ~40-50% for larger grammars.
2026-08-09 12:28:50 -05:00
Will Lillis
110a8becb8
perf(generate): shrink Symbol::index from usize to u32
...
This cuts `Symbol`'s size from 16 to 8 bytes. Results in a ~2-7% wall time
reduction, and ~7-10% peak RSS reduction.
2026-08-09 12:28:50 -05:00
Will Lillis
fb2052f02d
perf(generate): represent the grammar IR as a flat, pooled arena
...
Replace the owned `Rule`-tree grammar with a flat, pooled representation. `Rule`
nodes live in a `RulePool` arena and reference their children and params by
index (`RuleId`). Strings are interned in a `StrPool` and referred to by `StrId`.
Productions are stored as flat `ProductionStep`/`Production` slices indexed per
variable, rather than as nested vectors hanging off each `SyntaxVariable`. This
drops the per-rule heap allocation of the owned-tree form and is the groundwork
for the later table-building optimizations.
`parse_grammar` builds the pool, the prepare passes rewrite nodes in place, and
`prepare_grammar` returns a `PreparedGrammar` bundle that owns the run's `StrPool`
alongside the grammars. `build_tables`, `node_types`, and `render` borrow that
pool and resolve `StrId`s only at the output boundary.
Shows an average ~10% walltime reduction when combined with the previous
commit, with nearly all of the savings in `build_tables`. The `prepare`
stage is also ~70% faster and much more stable, but this contributes
much less to overall generate time. Improving early stages such as
`prepare` will be important for future interactive uses.
2026-08-09 12:28:50 -05:00
Will Lillis
e72c8594fb
perf(generate): precompute order-preserving item identity keys
...
Parse-item identity dominates parse-table construction. `ParseItem`'s
`Hash`, `Eq`, and `Ord` walk the entire production on every call,
comparing per-step precedence, aliases, and field names. These are
stored as strings for named precedences and for every alias and field.
Precompute, once per table build, two dense `u32` ids for every
`(production, dot)` slot by ranking the whole slot universe with the
item-content comparator, now extracted as `ItemContent`. Equal-content
slots are adjacent after sorting and the id increments only at content
boundaries, so comparing the `cmp` id reproduces the structural order
exactly (both an ordering and an equality). A second id, `eq_with_syms`,
refines `cmp` by the preceding symbols, which enter equality only for
items with `has_preceding_inherited_fields`.
`ParseItem` now carries its production's key slice, and `Hash`/`Eq`/`Ord`
become integer ops.
On the current string-based production storage this is performance-neutral
in isolation (the up-front ranking pays back the per-comparison savings).
It is the foundation for the following change to a pooled, integer-keyed
production representation, which makes both the ranking and the item
comparisons cheaper integer work.
2026-08-09 12:28:50 -05:00
Christian Clason
4f7ab22584
ci(release): add nightly builds
2026-08-08 19:09:56 +02:00
Newosko
308aee0c90
fix(lib): continue search for later named siblings in
...
`ts_tree_cursor_current_status`
By terminating early on `has_later_siblings`, `has_later_named_siblings`
was incorrectly reported as `false` in some cases. This led to the
execution of some queries to terminate early.
Also remove some dead branches inside `ts_tree_cursor_current_status`.
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2026-08-07 17:54:36 -04:00
Jason Boatman
003b10c280
feat(generate)!: expose OptLevel on generate_parser_for_grammar
2026-08-07 09:47:11 +02:00
Will Lillis
7511e3adaa
fix(rust)!: tie query iterators to options lifetime
...
`QueryMatches` and `QueryCaptures` retain query cursor options while they are
being iterated. However, their types did not preserve the lifetime of the
options' progress callback, allowing the callback to be dropped while it
was still referenced by the cursor.
Add an explicit options lifetime to both iterator types and propagate it
through `matches_with_options` and `captures_with_options`. Use a static
options lifetime for iterators created without options.
2026-08-07 01:15:38 -04:00
Christian Clason
8966c69fcd
build(deps): bump wasmtime-c-api to v36.0.13
2026-08-06 01:06:13 -04:00
dependabot[bot]
97e2eeb83c
build(deps): bump brace-expansion in /crates/cli/eslint
...
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion ) from 5.0.8 to 5.0.9.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases )
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v5.0.8...v5.0.9 )
---
updated-dependencies:
- dependency-name: brace-expansion
dependency-version: 5.0.9
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-04 09:59:36 +02:00
dependabot[bot]
fecce454cb
build(deps): bump @types/node
...
Bumps the npm group with 1 update in the /lib/binding_web directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ).
Updates `@types/node` from 26.1.1 to 26.1.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 26.1.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-04 09:38:07 +02:00
dependabot[bot]
36865d63bb
build(deps): bump the cargo group with 2 updates
...
Bumps the cargo group with 2 updates: [clap](https://github.com/clap-rs/clap ) and [webbrowser](https://github.com/amodm/webbrowser-rs ).
Updates `clap` from 4.6.4 to 4.6.5
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.6.4...clap_complete-v4.6.5 )
Updates `webbrowser` from 1.2.1 to 1.2.2
- [Release notes](https://github.com/amodm/webbrowser-rs/releases )
- [Changelog](https://github.com/amodm/webbrowser-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/amodm/webbrowser-rs/compare/v1.2.1...v1.2.2 )
---
updated-dependencies:
- dependency-name: clap
dependency-version: 4.6.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: webbrowser
dependency-version: 1.2.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-08-04 09:37:48 +02:00
Christian Clason
963b5a5a97
build(deps): bump rquickjs to v0.12.2
2026-07-29 02:21:32 +02:00
dependabot[bot]
4deef2d5ef
build(deps): bump eslint
...
Bumps the npm group with 1 update in the /lib/binding_web directory: [eslint](https://github.com/eslint/eslint ).
Updates `eslint` from 10.7.0 to 10.8.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v10.7.0...v10.8.0 )
---
updated-dependencies:
- dependency-name: eslint
dependency-version: 10.8.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-28 00:29:36 +02:00
dependabot[bot]
049dee2634
build(deps): bump the cargo group with 6 updates
...
Bumps the cargo group with 6 updates:
| Package | From | To |
| --- | --- | --- |
| [anyhow](https://github.com/dtolnay/anyhow ) | `1.0.103` | `1.0.104` |
| [clap](https://github.com/clap-rs/clap ) | `4.6.3` | `4.6.4` |
| [glob](https://github.com/rust-lang/glob ) | `0.3.3` | `0.3.4` |
| [serde](https://github.com/serde-rs/serde ) | `1.0.228` | `1.0.229` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.150` | `1.0.151` |
| [thiserror](https://github.com/dtolnay/thiserror ) | `2.0.18` | `2.0.19` |
Updates `anyhow` from 1.0.103 to 1.0.104
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.103...1.0.104 )
Updates `clap` from 4.6.3 to 4.6.4
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.6.3...clap_complete-v4.6.4 )
Updates `glob` from 0.3.3 to 0.3.4
- [Release notes](https://github.com/rust-lang/glob/releases )
- [Changelog](https://github.com/rust-lang/glob/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/glob/compare/v0.3.3...v0.3.4 )
Updates `serde` from 1.0.228 to 1.0.229
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.228...v1.0.229 )
Updates `serde_json` from 1.0.150 to 1.0.151
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.150...v1.0.151 )
Updates `thiserror` from 2.0.18 to 2.0.19
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/2.0.18...2.0.19 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-version: 1.0.104
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.6.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: glob
dependency-version: 0.3.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde
dependency-version: 1.0.229
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_json
dependency-version: 1.0.151
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: thiserror
dependency-version: 2.0.19
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-27 23:49:19 +02:00
Sjoerd Langkemper
0900f84eab
fix(generate): honor right associativity despite a lower-precedence shift
...
A SHIFT/REDUCE conflict can bundle several shift interpretations with
different precedences against a single reduce. `handle_conflict` weighed them
with only `shift_is_less` and `shift_is_more`, so a lone lower-precedence
shift set `shift_is_less` and the REDUCE won outright, even when another
interpretation tied the REDUCE in precedence and the REDUCE was declared
right-associative. That tie's associativity should have won by shifting, so a
right-associative rule silently became left-associative as soon as an
unrelated lower-precedence rule was added to the grammar.
Track the equal-precedence case explicitly, and in the reduce-wins branch
shift instead when a tying interpretation exists and the reduce actions are
purely right-associative.
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2026-07-27 02:06:35 -04:00
Christian Clason
4d0f126996
test(web): fix new lint failure
2026-07-25 18:02:19 +02:00
dependabot[bot]
ee3fa37bc3
build(deps): bump the npm group across 1 directory with 7 updates
...
Bumps the npm group with 7 updates in the /lib/binding_web directory:
| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `25.5.2` | `26.1.1` |
| [dts-buddy](https://github.com/sveltejs/dts-buddy ) | `0.7.0` | `0.8.3` |
| [esbuild](https://github.com/evanw/esbuild ) | `0.27.7` | `0.28.1` |
| [eslint](https://github.com/eslint/eslint ) | `9.39.4` | `10.7.0` |
| [source-map](https://github.com/mozilla/source-map ) | `0.7.6` | `0.8.0` |
| [tsx](https://github.com/privatenumber/tsx ) | `4.21.0` | `4.23.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ) | `8.58.0` | `8.65.0` |
Updates `@types/node` from 25.5.2 to 26.1.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `dts-buddy` from 0.7.0 to 0.8.3
- [Release notes](https://github.com/sveltejs/dts-buddy/releases )
- [Changelog](https://github.com/sveltejs/dts-buddy/blob/main/CHANGELOG.md )
- [Commits](https://github.com/sveltejs/dts-buddy/compare/v0.7.0...v0.8.3 )
Updates `esbuild` from 0.27.7 to 0.28.1
- [Release notes](https://github.com/evanw/esbuild/releases )
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md )
- [Commits](https://github.com/evanw/esbuild/compare/v0.27.7...v0.28.1 )
Updates `eslint` from 9.39.4 to 10.7.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v9.39.4...v10.7.0 )
Updates `source-map` from 0.7.6 to 0.8.0
- [Release notes](https://github.com/mozilla/source-map/releases )
- [Changelog](https://github.com/mozilla/source-map/blob/master/CHANGELOG.md )
- [Commits](https://github.com/mozilla/source-map/compare/0.7.6...v0.8.0 )
Updates `tsx` from 4.21.0 to 4.23.1
- [Release notes](https://github.com/privatenumber/tsx/releases )
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs )
- [Commits](https://github.com/privatenumber/tsx/compare/v4.21.0...v4.23.1 )
Updates `typescript-eslint` from 8.58.0 to 8.65.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.65.0/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 26.1.1
dependency-type: direct:development
update-type: version-update:semver-major
dependency-group: npm
- dependency-name: dts-buddy
dependency-version: 0.8.3
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: esbuild
dependency-version: 0.28.1
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: eslint
dependency-version: 10.7.0
dependency-type: direct:development
update-type: version-update:semver-major
dependency-group: npm
- dependency-name: source-map
dependency-version: 0.8.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: tsx
dependency-version: 4.23.1
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.65.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-25 18:02:19 +02:00
Will Lillis
15ea3328e1
fix(parser): restart recovery for invalid tokens in the error state
...
The early `ts_parser__recover` dispatch for `ERROR_STATE` in
`ts_parser__advance` was dropped in `201b41cf1`. Without it, tokens
with no valid action re-enter `ts_parser__handle_error` per token
and fragment the tree instead of extending one ERROR node. Restore
it to recover the old (pre-0.25) error recovery behavior.
2026-07-25 18:01:29 +02:00
dependabot[bot]
86e1fedfaf
build(deps): bump postcss from 8.5.12 to 8.5.23 in /lib/binding_web
...
Bumps [postcss](https://github.com/postcss/postcss ) from 8.5.12 to 8.5.23.
- [Release notes](https://github.com/postcss/postcss/releases )
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md )
- [Commits](https://github.com/postcss/postcss/compare/8.5.12...8.5.23 )
---
updated-dependencies:
- dependency-name: postcss
dependency-version: 8.5.23
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-25 17:56:46 +02:00
dependabot[bot]
4777d410dd
build(deps): bump brace-expansion in /crates/cli/eslint
...
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion ) from 5.0.7 to 5.0.8.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases )
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v5.0.7...v5.0.8 )
---
updated-dependencies:
- dependency-name: brace-expansion
dependency-version: 5.0.8
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-25 17:56:30 +02:00
dependabot[bot]
5d232ff77c
build(deps): bump js-yaml from 4.2.0 to 4.3.0 in /lib/binding_web
...
Bumps [js-yaml](https://github.com/nodeca/js-yaml ) from 4.2.0 to 4.3.0.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodeca/js-yaml/compare/4.2.0...4.3.0 )
---
updated-dependencies:
- dependency-name: js-yaml
dependency-version: 4.3.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-25 17:42:33 +02:00
dependabot[bot]
9beff8a998
build(deps): bump brace-expansion in /crates/cli/eslint
...
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion ) from 5.0.6 to 5.0.7.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases )
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v5.0.6...v5.0.7 )
---
updated-dependencies:
- dependency-name: brace-expansion
dependency-version: 5.0.7
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-25 17:42:03 +02:00
Will Lillis
3a76a8c8ca
feat(cli)!: rework HTML output modes in highlight
...
- `--layout <document|line-numbers|fragment>` (default `document`): the
document structure. `document` is a self-contained page wrapping a plain
`<div class="highlight"><pre><code>` block, `line-numbers` adds a line-number
`<table>`, and `fragment` emits only the code markup with no surrounding
`<head>`/`<style>`/`<body>` so it can be embedded in an existing page.
- `--style <classes|inline|minimal>` (default `classes`): how token colors
are applied. `classes` uses `class="..."` spans plus a generated `<style>`,
`inline` bakes colors onto each span so the markup is self-contained, and
`minimal` emits bare classes with no colors (bring your own stylesheet).
Deprecates the `--css-classes` flag.
2026-07-24 20:56:56 -04:00
Will Lillis
d205dc92de
fix(rust)!: require parser loggers to be Send + 'static
...
`Parser::set_logger` boxes the logger callback into a type-erased C
pointer, but `Parser` carries no lifetime parameter. This allows for
two kinds of UB:
- Use-after-free: a logger could capture a non-`'static` borrow, let the
borrowed value drop, and then dangle the next time the parser logged.
- Data race: a logger could capture a `!Send` value such as an `Rc`. The
parser could then be moved to another thread and logged from there
while the original thread still held a clone, racing on the reference
count.
As a fix, we just require that logger is `Send + 'static`. The
alternative here is to attach a lifetime parameter to `Parser`, but this
is highly breaking for what is mostly a debugging utility. As an escape
hatch `set_logger_unchecked` is added to the public API as an `unsafe fn`
to correctly communicate the risks and invariants that must be held.
2026-07-24 20:56:16 -04:00
Alex Le Blanc
65b5b03c94
fix(highlight): use std::sync::OnceCell for various loader fields
...
`std::unsync::OnceCell` allows for data races and requires an (incorrect) manual impl of the `Sync` trait.
2026-07-23 18:30:15 -04:00
dependabot[bot]
0a0e77c375
ci: bump the actions group with 3 updates
...
Bumps the actions group with 3 updates: [actions/checkout](https://github.com/actions/checkout ), [actions/setup-node](https://github.com/actions/setup-node ) and [vmactions/omnios-vm](https://github.com/vmactions/omnios-vm ).
Updates `actions/checkout` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v7.0.0...v7.0.1 )
Updates `actions/setup-node` from 6.4.0 to 7.0.0
- [Release notes](https://github.com/actions/setup-node/releases )
- [Commits](https://github.com/actions/setup-node/compare/v6.4.0...v7.0.0 )
Updates `vmactions/omnios-vm` from 1.3.3 to 1.3.4
- [Release notes](https://github.com/vmactions/omnios-vm/releases )
- [Commits](https://github.com/vmactions/omnios-vm/compare/v1.3.3...v1.3.4 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 7.0.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
- dependency-name: actions/setup-node
dependency-version: 7.0.0
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: vmactions/omnios-vm
dependency-version: 1.3.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-20 23:46:28 +02:00
dependabot[bot]
5e37a97684
build(deps): bump the cargo group with 4 updates
...
Bumps the cargo group with 4 updates: [cc](https://github.com/rust-lang/cc-rs ), [clap](https://github.com/clap-rs/clap ), [clap_complete_nushell](https://github.com/clap-rs/clap ) and [bitflags](https://github.com/bitflags/bitflags ).
Updates `cc` from 1.2.66 to 1.2.67
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.66...cc-v1.2.67 )
Updates `clap` from 4.6.1 to 4.6.2
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.6.1...clap_complete-v4.6.2 )
Updates `clap_complete_nushell` from 4.6.0 to 4.6.1
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete_nushell-v4.6.0...clap_complete_nushell-v4.6.1 )
Updates `bitflags` from 2.13.0 to 2.13.1
- [Release notes](https://github.com/bitflags/bitflags/releases )
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md )
- [Commits](https://github.com/bitflags/bitflags/compare/2.13.0...2.13.1 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.67
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.6.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete_nushell
dependency-version: 4.6.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: bitflags
dependency-version: 2.13.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-20 23:39:49 +02:00
Will Lillis
f45a488dea
feat(cli)!: make parent flags a hard requirements via clap
...
Also correct a parameter name in `print_tree_graph`
2026-07-18 17:00:53 -04:00
Will Lillis
78481a8dfc
fix(init): don't lowercase repository url
2026-07-18 15:35:49 -04:00
Will Lillis
1ffd612be5
fix(query): transfer a leading boundary anchor across a zero-matched quantifier
...
`(P . Q* Y)` with zero `Q` dropped the leading `.`, so `Y` matched at any
position instead of being pinned to the parent's first named child. On a `?`/`*`
zero-skip, when the skipped step is the parent's first child and carries a
leading anchor, transfer that first-child requirement to the skip target.
2026-07-17 17:53:45 -04:00
Will Lillis
dfcf73921c
fix(query): keep the trailing anchor when a zero-matched quantifier is anchored
...
on both sides
In `A . Q* . B`, a zero-matched `Q` made both anchors vacuous, so `A` and `B`
were no longer required to be immediate siblings. Only relax the following
anchor on a `?`/`*` zero-skip when the skipped step has no leading anchor of
its own; otherwise the adjacency transfers through the empty run.
2026-07-17 17:53:45 -04:00
Philipp
8fe4f218fb
fix(cli): init --update should not update setup.py after replacing it ( #5760 )
2026-07-17 17:53:14 -04:00
Christian Clason
8b7c213443
build(deps): bump binaryen to v131
2026-07-17 02:16:46 -04:00
Will Lillis
0e76a0bd53
fix(generate): fold case-insensitive patterns ourselves
...
Unicode simple case folding maps two non-ASCII code points onto ASCII
letters: the long s `ſ` (U+017F) onto `s`, and the Kelvin sign `K` (U+212A)
onto `k`. So `regex_syntax` pulls them into any case-insensitive pattern,
which is virtually never intended and has two bad effects:
* such tokens can no longer be extracted as keywords, because they are not
a subset of an ASCII `word` token (#5607 )
* a broad class like `[^"]` or `\p{L}` carrying `/i` loses `ſ`/`K`, even
though it legitimately contains them (#5755 )
Rather than let `regex_syntax` fold, parse patterns unfolded and fold them
ourselves in `case_fold_ascii_safe`: fold via `regex_syntax`, then drop
`ſ`/`K` only when folding introduced them (they were not already in the
base set). A class that already contains them keeps them.
2026-07-16 21:32:24 -04:00
Kamal Chandra Upreti
49dd7b4079
docs(init): fix broken link
2026-07-15 12:13:07 +00:00
Will Lillis
b23c9fceb7
feat(tags)!: include underlying LanguageError in tag
...
crate's error enum
2026-07-14 19:19:49 -04:00
Will Lillis
db078ba439
feat(highlight)!: include underlying LanguageError in highlight
...
crate's error enum
2026-07-14 19:19:49 -04:00
dependabot[bot]
da2838c39c
build(deps): bump memchr from 2.8.2 to 2.8.3 in the cargo group
...
Bumps the cargo group with 1 update: [memchr](https://github.com/BurntSushi/memchr ).
Updates `memchr` from 2.8.2 to 2.8.3
- [Commits](https://github.com/BurntSushi/memchr/compare/2.8.2...2.8.3 )
---
updated-dependencies:
- dependency-name: memchr
dependency-version: 2.8.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-13 23:47:28 +02:00
Will Lillis
d11d18f746
feat(web): expand Language::load to accept URL filepath
CI / check-wasm-stdlib (push) Has been cancelled
CI / checks (push) Has been cancelled
CI / sanitize (push) Has been cancelled
CI / build (push) Has been cancelled
2026-07-11 12:56:21 -04:00
Will Lillis
ee0847d605
fix(ci): re-set executable permission on release artifacts before zipping
CI / checks (push) Waiting to run
CI / sanitize (push) Waiting to run
CI / build (push) Waiting to run
CI / check-wasm-stdlib (push) Waiting to run
2026-07-11 10:25:33 +02:00
ObserverOfTime
08fcb7f2ef
fix(templates): replace deprecated method in Package.swift
CI / checks (push) Waiting to run
CI / sanitize (push) Waiting to run
CI / build (push) Waiting to run
CI / check-wasm-stdlib (push) Waiting to run
2026-07-11 00:50:56 -04:00
ObserverOfTime
805a7cd0ae
fix(templates): add C source files to Python sdist
2026-07-11 00:50:56 -04:00
Andrew Mayo
d2193f4dba
docs(comment): misleading/wrong comment stating that initial state TSStateId is 0 rather than 1
2026-07-11 00:49:54 -04:00
Will Lillis
07c4ed220e
fix(generate): strip non-ASCII case folds
...
Regexes with the case-insensitive 'i' flag caused unicode simple case folding,
which maps two non-ASCII code points onto ASCII letters:
- `ſ` (U+017F) onto `s`
- the Kelvin sign `K` (U+212A) onto `k`
This pushed such tokens outside an ASCII `word` token, so they failed to
extract as keywords.
2026-07-11 00:46:53 -04:00
Will Lillis
7027979c2b
feat(cli)!: don't load all languages via config when lib path is passed
...
Also, make `--lang-name` without `--lib-path` a hard error
2026-07-11 00:27:13 -04:00
Will Lillis
17a02fef5e
fix(rust): address new clippy lints
2026-07-11 00:03:44 -04:00
Julia Hansbrough
cc7be1fd47
fix(templates): generated array macros do not compile with C++
...
CI / checks (push) Has been cancelled
CI / sanitize (push) Has been cancelled
CI / build (push) Has been cancelled
CI / check-wasm-stdlib (push) Has been cancelled
Deploy Docs / deploy-docs (push) Has been cancelled
Problem: A set of `array_*` macros (`array_push`, `array_extend`, etc) implicitly convert a `void*` into a different pointer type. In environments that compile these headers as C++, this implicit conversion is an error.
Solution: This commit adds an `_array_cast` macro that uses `decltype` to cast the `void*` to the proper type when compiling as C++.
2026-07-08 08:38:37 +00:00
Will Lillis
cce7768b27
docs: specify valid children of supertype nodes
2026-07-08 10:36:50 +02:00
Will Lillis
15da6ddf12
feat(generate): improve error message for supertypes made invalid by
...
hidden children
2026-07-08 10:36:50 +02:00
Christian Clason
e470c32c24
build(deps): bump rquickjs to v0.12.1
2026-07-08 10:35:41 +02:00
dependabot[bot]
a1f55783e6
ci: bump korthout/backport-action in the actions group
...
CI / checks (push) Has been cancelled
CI / sanitize (push) Has been cancelled
CI / build (push) Has been cancelled
CI / check-wasm-stdlib (push) Has been cancelled
Bumps the actions group with 1 update: [korthout/backport-action](https://github.com/korthout/backport-action ).
Updates `korthout/backport-action` from 4.5.2 to 4.6.0
- [Release notes](https://github.com/korthout/backport-action/releases )
- [Commits](https://github.com/korthout/backport-action/compare/v4.5.2...v4.6.0 )
---
updated-dependencies:
- dependency-name: korthout/backport-action
dependency-version: 4.6.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-07 00:33:16 +02:00
dependabot[bot]
bf6f829c83
build(deps): bump the cargo group with 3 updates
...
Bumps the cargo group with 3 updates: [clap_complete](https://github.com/clap-rs/clap ), [rand](https://github.com/rust-random/rand ) and [rustc-hash](https://github.com/rust-lang/rustc-hash ).
Updates `clap_complete` from 4.6.5 to 4.6.7
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.6.5...clap_complete-v4.6.7 )
Updates `rand` from 0.10.1 to 0.10.2
- [Release notes](https://github.com/rust-random/rand/releases )
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-random/rand/compare/0.10.1...0.10.2 )
Updates `rustc-hash` from 2.1.2 to 2.1.3
- [Changelog](https://github.com/rust-lang/rustc-hash/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/rustc-hash/compare/v2.1.2...v2.1.3 )
---
updated-dependencies:
- dependency-name: clap_complete
dependency-version: 4.6.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: rand
dependency-version: 0.10.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: rustc-hash
dependency-version: 2.1.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-07-07 00:06:55 +02:00
Will Lillis
9fc2f486a8
docs(queries): clarify behavior of first child anchor example
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
CI / sanitize (push) Has been cancelled
CI / build (push) Has been cancelled
CI / check-wasm-stdlib (push) Has been cancelled
Deploy Docs / deploy-docs (push) Has been cancelled
Check Wasm Exports / check-wasm-exports (push) Has been cancelled
2026-07-01 19:31:05 -04:00
Will Lillis
ec872bca82
docs(queries): specify anchor behavior with quantifiers and groups
...
- An anchor between two patterns is vacuous when an adjacent quantifier
matches zero
- A leading or trailing anchor on a node applies to the nearest matched node
when an adjacent optional is skipped
- An anchor at the edge of a group or alternation is not allowed.
2026-07-01 19:31:05 -04:00
Will Lillis
139b801cce
fix(query): apply a trailing anchor when its optional node is skipped
...
A trailing `.` after an optional node, e.g. `(p (a)+ @a . (b)? @b .)`, sets
`is_last_child` on the `(b)?` step. When `(b)?` matched zero, the zero-skip
jumped past that step to completion, so the last-child requirement was never
enforced.
When a zero-skip would bypass a step carrying `is_last_child`, require that
the last matched node really is the last named child. Gated on the
`alternative_is_skip` edge marker.
2026-07-01 19:31:05 -04:00
Will Lillis
a6bc724748
fix(query): make an anchor after a zero-matched quantifier vacuous
...
A `.` anchor between a quantified pattern and a following node, e.g.
`(parent (comment)* @c . (decl))`, was treated as a leading anchor when the
quantifier matched zero. The zero-skip jumps a state directly onto the anchored
step, where `is_immediate` was enforced even though no sibling had matched before
it. Name that skip edge (`alternative_is_skip`) and, when a state follows it,
record that it skipped the quantifier (`skipped_quantifier`). The
immediate anchor is then supressoed for that state's next match.
2026-07-01 19:31:05 -04:00
Will Lillis
b69d00b0fe
fix(query): forbid an anchor at the end of a group
...
A `.` at the end of a group, such as `((comment)+ @c .)`, was silently dropped
during compilation. Reject rather than dropping.
2026-07-01 19:31:05 -04:00
Will Lillis
4915d1bd09
feat(query): enhanced step dumper
...
Extract the step dump into `ts_query__dump_steps` and enrich it with the control-flow
fields and analysis annotations.
2026-07-01 19:31:05 -04:00
Will Lillis
91fd04f96a
fix(query): short-circuit longest-match dedup for disjoint states
...
An unanchored quantified sibling like `(program (comment)+ @doc (class))`
keeps one match state per matching sibling. A recent fix stopped over-pruning
them, but the per-node longest-match dedup is pairwise, so with n live states
matching became O(n^3).
Two states can only be capture subsets of one another if their captured
byte ranges overlap, so keep each group ordered by first-capture position
and stop the pairwise scan once the rest of the group is disjoint.
Refs neovim/neovim#40517
2026-07-01 18:07:14 -04:00
Will Lillis
57ea5340c6
fix(xtask): eliminate silent errors in zig fetch
2026-06-30 19:37:55 -04:00
dependabot[bot]
5b591babd1
ci: bump actions/cache from 5 to 6 in the actions group
...
Bumps the actions group with 1 update: [actions/cache](https://github.com/actions/cache ).
Updates `actions/cache` from 5 to 6
- [Release notes](https://github.com/actions/cache/releases )
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md )
- [Commits](https://github.com/actions/cache/compare/v5...v6 )
---
updated-dependencies:
- dependency-name: actions/cache
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-29 23:39:20 +02:00
Christian Clason
ae2081989e
fix(deps): zig manifest for wasmtime is missing windows hashes
...
Problem: `zig fetch` on 0.16 can't download zip archives, which wasmtime
uses for Windows. This makes `cargo xtask upgrade-wastime` fail silently
with empty hashes for these platforms.
Solution: Re-run xtask with Zig 0.17 nightly.
2026-06-29 23:18:32 +02:00
Will Lillis
41d3e16eac
test(query): regression test for anchored siblings inside a parent
2026-06-28 13:43:53 +02:00
Will Lillis
98c25b9aa0
feat(rust)!: change ts_set_allocator to accept one optional Allocator
...
object rather than 4 separate optional function pointers.
Helps prevent misuse via mixing different allocators. Also update the
doc comment with relevant safety information.
2026-06-27 23:22:11 -04:00
Will Lillis
aec288f83c
feat(generate)!: collect warnings as structured data
...
Allows for use by library consumers, CLI users when the `--json` flag is
passed, and cleans up core logic.
2026-06-27 22:39:24 -04:00
Michael Davis
9991c0f46f
Add ts_query_copy for cloning queries
...
This allows duplicating a query so that it can be modified by using
disable_capture or disable_pattern, without re-parsing the query. The
new `ts_query_copy` creates a deep copy of the entire query object.
A motivation for this is tags.scm code navigation queries. You might
want to have one version of the compiled query capture only definitions
and the other only capture references, since references are much much
more common than definitions in a typical codebase. Instead of
re-parsing and analyzing the query and then calling
`ts_query_disable_capture`, we can clone the built query all-at-once and
then disable captures / patterns.
2026-06-27 17:53:13 -04:00
Lucas M. de Jong Larrarte
99bceec689
fix(query): skip passthrough steps when checking for fallible step splitting
...
Problem: In queries matching a parent node with anchored children
(siblings) where the first sibling has a quantifier and is not
captured, the check for fallible steps skips splitting the state because
the next node is a passthrough node (and not an is_immediate one). This
prevents the query from matching beyond the first occurrence.
Solution: In the check for fallible steps, skip the next steps if they
are passthrough steps.
2026-06-27 23:44:02 +02:00
Lucas M. de Jong Larrarte
8b43f42dca
fix(query): avoid overriding states not seeking immediate match with states seeking immediate match
...
Problem: In queries matching a parent node with anchored children
(siblings) where the first anchored sibling has a quantifier, the
deduplication logic for states is overly aggressive. The logic causes
the state split on the first capture (with the parent) to be dropped in
favor of the loopback state. This results in the query not being able to
match beyond the first occurrence.
Solution: Prevent the deduplication logic from dropping a state that is
not seeking an immediate match for one that is seeking an immediate
match, since the one not seeking for an immediate match could still
match later nodes.
2026-06-27 23:44:02 +02:00
Lucas M. de Jong Larrarte
1b110f62dd
fix(query): take anchors between siblings into account for fallible step splitting
...
Problem: In queries matching a parent node with anchored children
(siblings), the check for fallible steps only considers nodes with
children, which results in no state split being made for anchored
siblings (node1) . (node2). This prevents the query from matching beyond
the first occurrence.
Solution: Make the check for fallible steps consider also the case where
the next step is at the same depth and must be matched immediately
after.
2026-06-27 23:44:02 +02:00
Christian Clason
cdae49be40
ci: update workflows for breaking actions/checkout change
...
Problem: actions/checkout@v7 refuses to checkout fork pull request code
on `pull_request_target` trigger, breaking backport and reviewers-remove
workflows on external PRs.
Solution:
* backport: Checkout the merged-into base branch by name.
* reviewers-remove: inline script so no checkout needed.
2026-06-27 23:25:18 +02:00
Andrew Gibb
cbee467266
docs(readme): add link for cargo-binstall
...
* Update cli README.md
Added a link to CLI readme to make it clear to an outsider that
cargo-binstall is a different tool than cargo.
* Apply suggestion from @WillLillis
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
---------
Co-authored-by: Christian Clason <ch.clason+github@icloud.com>
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2026-06-26 08:10:43 -04:00
Christian Clason
8668f2c74f
build(deps): bump wasmtime-c-api to v36.0.12
2026-06-26 14:07:35 +02:00
Christian Clason
cc85df9440
build(deps): bump wasmtime-c-api to v36.0.11
2026-06-25 22:54:45 -04:00
ALancki1
b360d655cc
Clarify behavior of advance(..., skip) in external scanner docs
...
Clarifies the behavior of `TSLexer::advance` when `skip=true`.
The previous documentation didn't make it clear that `skip=true` should only be used before a token starts. Using it after `mark_end` can affect the token’s starting position and lead to incorrect or zero-length ranges.
Fixes #2315
2026-06-25 22:54:18 -04:00
Will Lillis
a8338eccef
fix(dsl): forbid invalid field names
2026-06-24 17:38:21 -04:00
dependabot[bot]
68316916e0
ci: bump the actions group with 2 updates
...
Bumps the actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout ) and [vmactions/omnios-vm](https://github.com/vmactions/omnios-vm ).
Updates `actions/checkout` from 6.0.3 to 7.0.0
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v6.0.3...v7.0.0 )
Updates `vmactions/omnios-vm` from 1.3.2 to 1.3.3
- [Release notes](https://github.com/vmactions/omnios-vm/releases )
- [Commits](https://github.com/vmactions/omnios-vm/compare/v1.3.2...v1.3.3 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 7.0.0
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: vmactions/omnios-vm
dependency-version: 1.3.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-23 00:04:47 +02:00
dependabot[bot]
29e38c284e
build(deps): bump cc from 1.2.64 to 1.2.65 in the cargo group
...
Bumps the cargo group with 1 update: [cc](https://github.com/rust-lang/cc-rs ).
Updates `cc` from 1.2.64 to 1.2.65
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.64...cc-v1.2.65 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.65
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-22 23:46:36 +02:00
Will Lillis
d861eab22b
fix(build): use std helper rather than passing -std=c11 flag
...
MSVC expects `/std:c11`
2026-06-16 23:55:43 -04:00
Will Lillis
6b7e298549
fix(lib): address strict aliasing violations in TreeCursor type
2026-06-16 23:55:43 -04:00
dependabot[bot]
04bac19343
ci: bump vmactions/omnios-vm from 1 to 1.3.2 in the actions group
...
Bumps the actions group with 1 update: [vmactions/omnios-vm](https://github.com/vmactions/omnios-vm ).
Updates `vmactions/omnios-vm` from 1 to 1.3.2
- [Release notes](https://github.com/vmactions/omnios-vm/releases )
- [Commits](https://github.com/vmactions/omnios-vm/compare/v1...v1.3.2 )
---
updated-dependencies:
- dependency-name: vmactions/omnios-vm
dependency-version: 1.3.2
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-16 10:40:26 +02:00
dependabot[bot]
6ad626c686
build(deps): bump js-yaml from 4.1.1 to 4.2.0 in /lib/binding_web
...
Bumps [js-yaml](https://github.com/nodeca/js-yaml ) from 4.1.1 to 4.2.0.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodeca/js-yaml/commits )
---
updated-dependencies:
- dependency-name: js-yaml
dependency-version: 4.2.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-16 10:39:58 +02:00
Christian Clason
d3314cb62e
build(deps): bump rquickjs to v0.12.0
2026-06-15 18:49:48 -04:00
dependabot[bot]
d77f764dcd
build(deps): bump the cargo group with 2 updates
...
Bumps the cargo group with 2 updates: [cc](https://github.com/rust-lang/cc-rs ) and [memchr](https://github.com/BurntSushi/memchr ).
Updates `cc` from 1.2.63 to 1.2.64
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.63...cc-v1.2.64 )
Updates `memchr` from 2.8.1 to 2.8.2
- [Commits](https://github.com/BurntSushi/memchr/compare/2.8.1...2.8.2 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.64
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: memchr
dependency-version: 2.8.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-15 23:44:16 +02:00
buckynbrocko
49f5027158
Added tree-sitter test option --show-diff-markers to force use of + & - while still coloring output
...
Also cleanup the trailing newline special casing in the `TestDiff`
`Display` impl.
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2026-06-13 10:29:37 -04:00
Will Lillis
3ed12db8f0
fix(rust): use more accurate types for various IoError structs
2026-06-13 09:35:12 -04:00
Christian Clason
de4b622223
build(deps): bump wasmtime-c-api to v36.0.10
2026-06-10 17:36:02 -04:00
Christian Clason
2fb79a4325
build(deps): bump binaryen to v130
2026-06-10 17:25:15 -04:00
jannschu
519d511488
fix(cli): highlight test did not properly check for spans on later rows
...
The early exit condition to skip remaining highlights was incorrectly
checking the lexicographical order, which could lead to false
passes if a highlight was on a later row with smaller column number.
2026-06-08 18:09:03 -04:00
dependabot[bot]
811b5308f8
ci: bump actions/checkout from 6.0.2 to 6.0.3 in the actions group
...
Bumps the actions group with 1 update: [actions/checkout](https://github.com/actions/checkout ).
Updates `actions/checkout` from 6.0.2 to 6.0.3
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v6.0.2...v6.0.3 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-08 23:50:59 +02:00
Will Lillis
4455da7102
fix(rust): more clippy fixes in generate
...
Additional clippy lints fire when certain modules are temporarily made
public, i.e. for testing purposes. Fixing these reduces clutter and
helps with internal development.
2026-06-05 17:31:40 -04:00
Will Lillis
4154ff23c0
fix(docs): explicitly warn against aliasing supertypes
2026-06-05 17:31:26 -04:00
Will Lillis
d10b7272d2
fix(cli): warn user for various malformed tests
...
- attribute on same line of name
- typo'd attribute
- no closing `=====` line after the test body
2026-06-05 17:31:09 -04:00
Will Lillis
d9acc99734
fix(cli): display warning to user if parser test corpus dir isn't found
2026-06-05 17:30:52 -04:00
Will Lillis
0617a59ed6
fix: add DESCRIPTION to grammar Makefile template
2026-06-05 09:43:49 +02:00
dependabot[bot]
5742052982
build(deps): bump the cargo group with 3 updates
...
Bumps the cargo group with 3 updates: [cc](https://github.com/rust-lang/cc-rs ), [log](https://github.com/rust-lang/log ) and [memchr](https://github.com/BurntSushi/memchr ).
Updates `cc` from 1.2.62 to 1.2.63
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.62...cc-v1.2.63 )
Updates `log` from 0.4.29 to 0.4.30
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.29...0.4.30 )
Updates `memchr` from 2.8.0 to 2.8.1
- [Commits](https://github.com/BurntSushi/memchr/compare/2.8.0...2.8.1 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.63
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: log
dependency-version: 0.4.30
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: memchr
dependency-version: 2.8.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-03 12:06:15 +02:00
dependabot[bot]
94d419832e
ci: bump actions/checkout from 6 to 6.0.2 in the actions group
...
Bumps the actions group with 1 update: [actions/checkout](https://github.com/actions/checkout ).
Updates `actions/checkout` from 6 to 6.0.2
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v6...v6.0.2 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-03 12:05:42 +02:00
Trevor Burnham
ff4dbc0589
perf(bindings): defer importlib.resources import in python template ( #5589 )
...
Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
2026-06-01 23:08:00 -04:00
Will Lillis
15ddfb21ed
fix(lib): Consider subtree lookahead bytes when determining whether the
...
parser can reuse a node.
Lookahead bytes can be used to decide what a node is parsed as, so it's
resaonable to consider this as part of a node's "range" when deciding
which edits affect it.
2026-06-01 18:12:56 -04:00
jannschu
f541fec5ad
fix(cli): infinite loop in highlight test
2026-05-31 12:37:38 -04:00
Will Lillis
cd338a7a43
fix(loader): skip --no-undefined for sanitizer grammar builds
...
Compiling a grammar with `-fsanitize=address` (or any other sanitizer)
emits a module constructor in the parser object file that references
runtime symbols like `__asan_init`. These runtime-resolved symbols are
incompatible with `-Wl,--no-undefined`, which breaking sanitized test
runs on clang. (gcc happens to paper over this by auto-linking libasan
into the .so)
To fix, detect `-fsanitize=` in the compile flags and omit `--no-undefined`
in that case.
2026-05-31 10:56:40 -04:00
Will Lillis
ceef7d179f
fix(lib): rewrite ts_subtree__write_to_string to be iterative
2026-05-31 10:56:12 -04:00
Will Lillis
797d2bddc4
fix(cli): make check_consistent_sizes iterative
...
The recursive helper could overflow with deeply nested trees.
2026-05-31 10:56:12 -04:00
Will Lillis
e00bf7bc84
fix(cli): print fuzzing seed unconditionally
2026-05-31 10:56:12 -04:00
Will Lillis
f1db12c31c
fix(cli): improve soundness of cst range calculation
2026-05-31 10:55:47 -04:00
Will Lillis
4d362b4b98
feat(generate): derive Deserialize on GenerateError and all subtypes
...
These types all derive `Serialize` already.
2026-05-31 08:45:11 +02:00
Georges Savoundararadj
1da46327b3
fix(lib): use correct TREE_SITTER_HIDE_SYMBOLS macro name in alloc.h
...
The alloc.h header checked for TREE_SITTER_HIDDEN_SYMBOLS, but the
canonical macro name used everywhere else (api.h, render.rs, setup.py)
is TREE_SITTER_HIDE_SYMBOLS. This mismatch meant that defining
TREE_SITTER_HIDE_SYMBOLS (as the Python binding build does) would not
actually hide the allocator symbols in alloc.h.
Fixes tree-sitter/tree-sitter#5625
Signed-off-by: Georges Savoundararadj <savoundg@amazon.com>
2026-05-30 21:42:31 -04:00
Will Lillis
17125cefa6
fix(lib): update doc comment for ts_parser_parse
2026-05-30 04:11:53 -04:00
dependabot[bot]
e39ef3e700
build(deps): bump serde_json from 1.0.149 to 1.0.150 in the cargo group
...
Bumps the cargo group with 1 update: [serde_json](https://github.com/serde-rs/json ).
Updates `serde_json` from 1.0.149 to 1.0.150
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.149...v1.0.150 )
---
updated-dependencies:
- dependency-name: serde_json
dependency-version: 1.0.150
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-26 09:59:47 +02:00
Will Lillis
30c00bc4fe
fix(cli): place generate artifacts next to grammar file rather than cwd
...
- If grammar.js is passed, place it in the parent directory
- If grammar.json is passed, place it in the grandparent directory
2026-05-24 22:12:56 -04:00
Will Lillis
a5c0d24749
fix(test): restore corpus test header blank line and divider tie behavior
2026-05-23 12:32:46 -04:00
dependabot[bot]
b1fa9725cf
build(deps): bump brace-expansion in /crates/cli/eslint
...
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion ) from 5.0.5 to 5.0.6.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases )
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v5.0.5...v5.0.6 )
---
updated-dependencies:
- dependency-name: brace-expansion
dependency-version: 5.0.6
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-19 10:42:31 +02:00
dependabot[bot]
edae7391ed
ci: bump korthout/backport-action in the actions group
...
Bumps the actions group with 1 update: [korthout/backport-action](https://github.com/korthout/backport-action ).
Updates `korthout/backport-action` from 4.5.1 to 4.5.2
- [Release notes](https://github.com/korthout/backport-action/releases )
- [Commits](https://github.com/korthout/backport-action/compare/v4.5.1...v4.5.2 )
---
updated-dependencies:
- dependency-name: korthout/backport-action
dependency-version: 4.5.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-19 09:51:24 +02:00
Max Brunsfeld
a53c3b03a0
fix(wasm): load supertype tables for ABI 15 grammars ( #5605 )
...
The wasm store gated supertype_symbols / supertype_map_slices /
supertype_map_entries copies on abi_version > LANGUAGE_VERSION_WITH_RESERVED_WORDS,
but every other consumer (language.c, query.c) treats those tables as
present when abi_version >= LANGUAGE_VERSION_WITH_RESERVED_WORDS.
A Wasm grammar built at ABI exactly 15 with supertype_count > 0 ends up
with supertype_count copied into the native TSLanguage but supertype_map_slices
left NULL. ts_query__analyze_patterns then calls ts_language_subtypes,
which dereferences self->supertype_map_slices[supertype] and crashes.
2026-05-18 16:33:55 -04:00
Will Lillis
f535c3bb97
fix(test): write fixture headers once
...
Several test functions compile the same grammar fixture.
Tests sharing a grammar name also share a src_dir. Each test also
unconditionally writes the three tree-sitter headers into
src_dir/tree_sitter/, leading to a race.
Write the three headers exactly once per src_dir, controlled via a
global `HashSet`.
2026-05-17 19:55:37 -04:00
Will Lillis
71040925fe
perf(cli): stream CST rendering via Display wrappers
...
Co-authored-by: Amaan Qureshi <git@amaanq.com>
2026-05-17 15:02:08 -04:00
Will Lillis
ffea4e8e58
fix(cli): rework coloring abstraction and fix NO_COLOR handling
...
Co-authored-by: Amaan Qureshi <git@amaanq.com>
2026-05-17 15:02:08 -04:00
Christian Clason
d4e7f9793c
build(deps): bump wasi-sdk to v33
2026-05-16 11:45:48 +02:00
Christian Clason
3a260021dd
build(deps): bump wasmtime-c-api to v36.0.9
2026-05-16 11:45:39 +02:00
dependabot[bot]
a858378ce7
build(deps): bump cc from 1.2.61 to 1.2.62 in the cargo group
...
Bumps the cargo group with 1 update: [cc](https://github.com/rust-lang/cc-rs ).
Updates `cc` from 1.2.61 to 1.2.62
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.61...cc-v1.2.62 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.62
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-12 09:13:21 +02:00
dependabot[bot]
aa83bf0402
ci: bump korthout/backport-action in the actions group
...
Bumps the actions group with 1 update: [korthout/backport-action](https://github.com/korthout/backport-action ).
Updates `korthout/backport-action` from 4.5.0 to 4.5.1
- [Release notes](https://github.com/korthout/backport-action/releases )
- [Commits](https://github.com/korthout/backport-action/compare/v4.5.0...v4.5.1 )
---
updated-dependencies:
- dependency-name: korthout/backport-action
dependency-version: 4.5.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-12 09:13:01 +02:00
Will Lillis
50bb81484d
fix(generate): consider reserved words when removing unused rules
2026-05-10 23:53:48 -04:00
Will Lillis
3b328005c9
fix(generate): rewrite parse_grammar with forward DFS
...
The previous implementation of `InputGrammar::normalize` (inlined in
`parse_grammar` iterated over every variable, checking whether it was
reachable _backwards_ from teh root by recursing over rules that
referenced it.
This means that each and every top level call re-traversed the entire
graph. The runtime performance of this backwards walk was dependent on
the _order_ of rules as declared in `grammar.js`. All existing grammars
have an ordering that's reasonably friendly to this iteration pattern
(BFS-ish order, top down from the start rule), but this leaves us open
to a catastrophic performance cliff.
Instead, seed a `used` set with the start rule, the word token, and an
names referenced from `extras`/`externals`. Then propagate via direct rule
references. This yields anywhere from a 2-~2200x speedup for
`parse_grammar`. This greatly speeds up `--no-parser` runs, but is
relatively unimportant for `parser.c` generation for _existing_
grammars. The important piece is eliminating the potential cliff.
2026-05-10 23:53:48 -04:00
Will Lillis
a376ad491f
fix(generate): improve error message for nonterminals used in immediate token rule
2026-05-10 10:39:48 -04:00
𝙽!𝙻
21cfae7b56
Validate Wasm language memory reads ( #5569 )
2026-05-06 11:54:31 -07:00
Will Lillis
5cac4316db
fix(cli): account for process versions > 5 in the parse command's pretty
...
debug output.
The initial implementation of `--debug pretty` assumed process version
was bounded by `MAX_VERSION_COUNT`. However, we also have to account for
`MAX_VERSION_COUNT_OVERFLOW` as well as `halted_version_count`.
2026-05-05 18:17:07 -04:00
dependabot[bot]
bc2802abed
build(deps): bump clap_complete from 4.6.2 to 4.6.3 in the cargo group
...
Bumps the cargo group with 1 update: [clap_complete](https://github.com/clap-rs/clap ).
Updates `clap_complete` from 4.6.2 to 4.6.3
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.6.2...clap_complete-v4.6.3 )
---
updated-dependencies:
- dependency-name: clap_complete
dependency-version: 4.6.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-05 08:19:48 +02:00
dependabot[bot]
16e48018b3
ci: bump korthout/backport-action in the actions group
...
Bumps the actions group with 1 update: [korthout/backport-action](https://github.com/korthout/backport-action ).
Updates `korthout/backport-action` from 4.4.0 to 4.5.0
- [Release notes](https://github.com/korthout/backport-action/releases )
- [Commits](https://github.com/korthout/backport-action/compare/v4.4.0...v4.5.0 )
---
updated-dependencies:
- dependency-name: korthout/backport-action
dependency-version: 4.5.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-05-05 08:19:21 +02:00
Christian Clason
85f985a778
build(deps): bump wasmtime-c-api to v36.0.8
2026-05-05 08:19:02 +02:00
Will Lillis
8d737aa238
docs: note zero point unbounded behavior in query functions
2026-04-30 04:28:59 -04:00
dependabot[bot]
aedab6e0f2
build(deps): bump postcss from 8.5.8 to 8.5.12 in /lib/binding_web
...
Bumps [postcss](https://github.com/postcss/postcss ) from 8.5.8 to 8.5.12.
- [Release notes](https://github.com/postcss/postcss/releases )
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md )
- [Commits](https://github.com/postcss/postcss/compare/8.5.8...8.5.12 )
---
updated-dependencies:
- dependency-name: postcss
dependency-version: 8.5.12
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-04-29 11:12:37 +02:00
dependabot[bot]
fb3e029911
ci: bump the actions group with 2 updates
...
Bumps the actions group with 2 updates: [korthout/backport-action](https://github.com/korthout/backport-action ) and [actions/setup-node](https://github.com/actions/setup-node ).
Updates `korthout/backport-action` from 4 to 4.4.0
- [Release notes](https://github.com/korthout/backport-action/releases )
- [Commits](https://github.com/korthout/backport-action/compare/v4...v4.4.0 )
Updates `actions/setup-node` from 6.3.0 to 6.4.0
- [Release notes](https://github.com/actions/setup-node/releases )
- [Commits](https://github.com/actions/setup-node/compare/v6.3.0...v6.4.0 )
---
updated-dependencies:
- dependency-name: korthout/backport-action
dependency-version: 4.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: actions/setup-node
dependency-version: 6.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-04-28 09:30:25 +02:00
dependabot[bot]
6c674cb5bd
build(deps): bump cc from 1.2.60 to 1.2.61 in the cargo group
...
Bumps the cargo group with 1 update: [cc](https://github.com/rust-lang/cc-rs ).
Updates `cc` from 1.2.60 to 1.2.61
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.60...cc-v1.2.61 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.61
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-04-28 09:29:50 +02:00
Wilco Kruijer
fb348c3493
wasm: add Language.loadSync for synchronous loading
...
Co-authored-by: Amaan Qureshi <git@amaanq.com>
2026-04-26 18:58:50 -04:00
Amaan Qureshi
43dc8eadbe
query: fix finished state heap invariants
2026-04-26 18:03:55 -04:00
Will Lillis
123fb1c13c
perf(query): use min-heap for finished_states in next_capture
...
`ts_query_cursor_next_capture` linearly scanned all finished states to
find the one with the earliest next capture byte offset. With deeply
nested code, this O(n) scan per capture caused the highlight crate to
hang for minutes on large files.
Replace the linear scan with a min-heap over the finished_states array,
keyed by (next_capture_byte_offset, pattern_index, id). The heap is
maintained lazily: ts_query_cursor__advance uses plain array_push
(preserving FIFO insertion order), and next_capture sifts new elements
into the heap on entry via a tracked heap_size boundary. This preserves
the documented "order found" guarantee for next_match while giving
next_capture O(log n) per call.
2026-04-26 18:03:55 -04:00
Will Lillis
361f293a73
fix(query): widen capture list pool from uint16_t to uint32_t
...
Commit 1f6eac55 ("query: Use uint32_t for capture list IDs") widened
QueryState.capture_list_id to uint32_t and removed the 65536 pool cap,
but left the pool function signatures as uint16_t. This caused silent
truncation when the pool exceeded 65535 entries, leading to a segfault.
2026-04-26 18:03:55 -04:00
Amaan Qureshi
e24c109c82
ci: run on illumos
2026-04-26 13:23:32 -04:00
Petr Sumbera
77cb23fccc
lib: add Solaris support to the portable endian header
...
Solaris does not provide <endian.h> or <sys/endian.h>, but it does expose
byte-order definitions and conversion helpers via <sys/isa_defs.h> and
<sys/byteorder.h>.
Add a __sun branch so the portable header defines __BYTE_ORDER and the
htobe*/le*toh conversions on Solaris.
Co-authored-by: Amaan Qureshi <git@amaanq.com>
2026-04-26 13:23:32 -04:00
Daniel Jalkut
0f6780b9a3
lexer: pass code-unit length to U16_NEXT in UTF-16 decoders
...
`ts_decode_utf16_le` and `ts_decode_utf16_be` passed a byte length to
`U16_NEXT_LE` and `U16_NEXT_BE`, but those macros count `uint16_t` code
units. If a lead surrogate was the last code unit in a chunk, the decoder
could peek past the chunk and combine it with adjacent memory.
This commit passes the code-unit length to the UTF-16 macros, and fails
with `TS_DECODE_ERROR` when a chunk is too short to contain even one full
code unit. This lets the lexer retry with a fresh chunk or advance through
the invalid byte as it already does.
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
Co-authored-by: Amaan Qureshi <git@amaanq.com>
2026-04-26 03:38:47 -04:00
Amaan Qureshi
475c48d1e3
docs: add AI policy
...
Co-authored-by: Christian Clason <c.clason@uni-graz.at>
2026-04-26 02:58:56 -04:00
Will Lillis
457eb295b7
fix(generate): pass default optimization level in
...
`generate_parser_for_grammar`
Passing `empty` here causes some grammars (i.e. tree-sitter-cpp) to fail
to generate.
2026-04-24 08:52:18 +02:00
Antonin Delpeuch
eccef997df
feat(dist): enable install via cargo binstall ( #5533 )
2026-04-24 08:52:01 +02:00
Will Lillis
15154504de
fix(ci): include fixture lockfile in cache hash
2026-04-23 03:31:00 -04:00
Will Lillis
d6e33d0722
test: bump c test fixture to v0.24.2
2026-04-23 03:31:00 -04:00
Volker Mische
4cb11acd46
fix(loader): allow filenames with dots ( #5529 )
2026-04-22 03:41:04 -04:00
dependabot[bot]
4701df97c0
build(deps): bump the cargo group with 3 updates
...
Bumps the cargo group with 3 updates: [clap_complete](https://github.com/clap-rs/clap ), [webbrowser](https://github.com/amodm/webbrowser-rs ) and [bitflags](https://github.com/bitflags/bitflags ).
Updates `clap_complete` from 4.6.1 to 4.6.2
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.6.1...clap_complete-v4.6.2 )
Updates `webbrowser` from 1.2.0 to 1.2.1
- [Release notes](https://github.com/amodm/webbrowser-rs/releases )
- [Changelog](https://github.com/amodm/webbrowser-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/amodm/webbrowser-rs/compare/v1.2.0...v1.2.1 )
Updates `bitflags` from 2.11.0 to 2.11.1
- [Release notes](https://github.com/bitflags/bitflags/releases )
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md )
- [Commits](https://github.com/bitflags/bitflags/compare/2.11.0...2.11.1 )
---
updated-dependencies:
- dependency-name: clap_complete
dependency-version: 4.6.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: webbrowser
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: bitflags
dependency-version: 2.11.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 09:38:08 +02:00
dependabot[bot]
5c1dd38c45
ci: bump actions/setup-node from 6 to 6.3.0 in the actions group
...
Bumps the actions group with 1 update: [actions/setup-node](https://github.com/actions/setup-node ).
Updates `actions/setup-node` from 6 to 6.3.0
- [Release notes](https://github.com/actions/setup-node/releases )
- [Commits](https://github.com/actions/setup-node/compare/v6...v6.3.0 )
---
updated-dependencies:
- dependency-name: actions/setup-node
dependency-version: 6.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 09:37:49 +02:00
Chinmay Dalal
20bdf3a8a0
feat(bindings): update zig template to 0.16
2026-04-20 09:31:18 +02:00
changw98ic
aff9b9d92e
fix: update broken link to Parser.Language in template
...
The link `https://tree-sitter.github.io/node-tree-sitter/interfaces/Parser.Language.html ` returns a 404 error.
In the current typedoc output, the Language interface is at `/interfaces/Language.html` (without the `Parser.` prefix), as the documentation flattens namespace members.
Fixes #5525
2026-04-17 08:20:05 +02:00
Chinmay Dalal
24a64db7cc
build(zig): update to zig 0.16
2026-04-15 14:54:53 +02:00
dependabot[bot]
b3a752aa5b
ci: bump the actions group with 2 updates
...
Bumps the actions group with 2 updates: [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact ) and [actions/github-script](https://github.com/actions/github-script ).
Updates `actions/upload-pages-artifact` from 4 to 5
- [Release notes](https://github.com/actions/upload-pages-artifact/releases )
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v4...v5 )
Updates `actions/github-script` from 8 to 9
- [Release notes](https://github.com/actions/github-script/releases )
- [Commits](https://github.com/actions/github-script/compare/v8...v9 )
---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/github-script
dependency-version: '9'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-04-14 08:19:47 +02:00
dependabot[bot]
63b7d3b811
build(deps): bump rand from 0.10.0 to 0.10.1
...
Bumps [rand](https://github.com/rust-random/rand ) from 0.10.0 to 0.10.1.
- [Release notes](https://github.com/rust-random/rand/releases )
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-random/rand/compare/0.10.0...0.10.1 )
---
updated-dependencies:
- dependency-name: rand
dependency-version: 0.10.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-04-14 08:18:47 +02:00
Christian Clason
75fe13e7aa
build(deps): cargo update
2026-04-11 18:29:00 -04:00
Christian Clason
8178cfddd8
build(deps): bump wasmtime-c-api to v36.0.7
2026-04-10 00:41:06 +02:00
Christian Clason
78714eb1b8
ci(nvim-ts): further improvements to Neovim build
...
* Build Neovim on Windows as well
* Use latest stable release instead of `HEAD` as base
* Run parser check (prints ABI)
2026-04-07 22:55:22 +02:00
dependabot[bot]
b018c20018
build(deps): bump vite from 7.3.1 to 7.3.2 in /lib/binding_web
...
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 7.3.1 to 7.3.2.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/v7.3.2/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v7.3.2/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 7.3.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-04-07 10:10:18 +02:00
Christian Clason
aa2c18895b
ci(nvim-ts): build nvim against PR lib
...
Problem: The nvim-treesitter tests use a prebuilt Neovim, which means
changes to the library are not tested and parser generation is locked at
the ABI Neovim supports.
Solution: Build Neovim against the PR version of the library on Ubuntu
and macOS. On Windows, we still download binaries (because one does not
simply build Neovim on Windows...) so we still can check backward
compatibility.
2026-04-05 13:27:17 +02:00
Will Lillis
ec0f2b59ee
perf(generate): use bitsets for coincident tokens and TokenConflictMap
...
- replace `Vec<Vec<ParseStateId>>` with a flat bitset in
`CoincidentTokenIndex` for membership queries
The previous representation stored full lists of parse state IDs for
each token pair. Since only membership (yes/no) is needed for most
queries, a flat bitset (`Vec<u64>` indexed as `a * n + b`) is
better. Both `(a,b)` and `(b,a)` bits are set during construction
so `contains()` needs no min/max normalization. The original
`entries: Vec<Vec<ParseStateId>>` and `states_with()` method are
retained alongside the bitset, because `identify_keywords` needs
to iterate over the specific parse states where two tokens co-occur
rather than scanning all states. ~8% walltime reduction for
tree-sitter-bash.
- add word-aligned per-row bitsets to `CoincidentTokenIndex` for
vectorized intersection checks
Row `a` spans `[a * row_words .. (a+1) * row_words]` where
`row_words = n.div_ceil(64)`. This enables callers in
`build_lex_table` to perform word-level AND operations against
`TokenSet::terminal_bits_words()` instead of iterating individual
token indices. ~6% walltime reduction on tree-sitter-bash.
- add `TokenSet::terminal_bits_words()` accessor and `#[inline]` on
`BitVec::insert_all`
Expose the raw `&[u64]` backing the terminal bitset so callers can
perform word-level bitwise intersection. Mark `insert_all` as
`#[inline]` to allow the compiler to optimize the hot OR loop.
2026-04-04 17:58:29 -04:00
Will Lillis
13a7a04e79
perf(generate): optimize NFA operations and token conflict precomputation
...
- precompute a flat NFA-state-to-variable-index lookup table
Build a `Vec<usize>` mapping each NFA state ID to its owning
variable index up front in `TokenConflictMap::new`, replacing
repeated binary searches in `compute_conflict_status` with
array lookups. Also simplifies `mark_fragile_tokens` to
collect terminal indices into a `Vec` rather than maintaining
a boolean mask.
- replace `FxHashSet<Vec<u32>>` visited set with `FxHashSet<u64>`
using a hash-of-states key
In `compute_conflict_status`, the visited-state-set previously
stored cloned `Vec<u32>` NFA state sets. Replace this with an
`FxHashSet<u64>` keyed by hashing the sorted state slice via
`FxHasher`. This eliminates the `Vec` clone on every BFS step.
- reduce allocations in `NfaCursor::group_transitions`
Reuse a single `CharacterSet` buffer across iterations via `assign`
and `mem::take` instead of cloning the input on every raw
transition. Also, replace `Vec::insert` with `Vec::push` when
splitting intersection transitions. The final sort makes
mid-loop ordering irrelevant, and the disjointness of the split
sets guarantees correctness.
- pre-allocate `NfaTransition` result vectors with a capacity of 8
and use `swap_remove` instead of `remove` when merging duplicate
transition entries
- lazily compute `within_separator` in `compute_conflict_status`
Most BFS states have no completions, so the separator check
(which iterates all cursor transitions) is never needed in those
iterations. Wrap it in `Option::get_or_insert_with` to defer
computation until first use.
- add `NfaCursor::transitions_and_any_sep` to fuse the transitions
and separator-check passes
Callers like `build_lex_table::add_state` previously called
`transitions()` and then `transition_chars().any(|sep|)` separately,
iterating the raw NFA transitions twice. The fused method computes
both in a single pass.
2026-04-04 17:58:29 -04:00
Will Lillis
f1142b6e42
perf(generate): use FxHasher over default hash implementation
...
Replace `std::collections::{HashMap, HashSet}` with
`rustc_hash::{FxHashMap, FxHashSet}` throughout `generate`. `FxHash`
is _much_ faster than the default SipHash for small integer keys,
which are used extensively through `generate`. The one "risk" here is
that `FxHash` is more vulnerable to DDOS attacks, but that isn't as much
of a concern for us here.
2026-04-04 17:58:29 -04:00
Will Lillis
6c8ac80be9
perf(generate): optimize token conflict analysis and symbol handling
...
- use bitflags for `TokenConflictStatus`
Replace the individual boolean fields on the conflict status type
with a `bitflags!` representation. This takes up significantly less
space and allows for faster combination/testing in `token_conflicts`.
- hoist loop bounds in the merge-join loops of `states_conflict`
Extract `Vec::len()` outside of `while` loops to avoid recomputing
bounds on every iteration. Remove the now-unused `row_offset` /
`does_conflict_at` indirection on `TokenConflictMap`, inlining the
conflict check directly.
- optimize `variable_index_for_nfa_state` in `grammars.rs`
Small optimization to the NFA state-to-variable index mapping.
- refactor symbol key into a proper newtype
Extract the raw `u64` symbol key bit manipulation into a `key_index`
helper function for some extra type safety.
2026-04-04 17:58:29 -04:00
Will Lillis
d4db0a32f0
perf(generate): optimize minimize_parse_table with precomputation and compact types
...
- use a boolean `Vec` instead of `Vec::contains` in `dedup`
Replace linear containment checks (`split_state_ids.contains()`)
with a constant lookup indexed by state ID.
- narrow parse state IDs from `usize` to `u16`
Reduces memory footprint and improves packing in `ParseTable` and
`build_parse_table`. This is more cache-friendly and reduces peak rss by
~1-2%.
- precompute lookup tables for parse table minimization
Build several maps up front (symbol-to-action, nonterminal indices,
symbol keys) rather than recomputing them in the hot minimization
loop. The `SymbolKey` optimization is the largest single win: it
packs each `Symbol`'s type tag and index into a single u64, enabling
single-instruction comparisons in the merge-join that dominates
`states_conflict`. This gives a significant speedup for larger
grammars.
- store ParseTableEntry` refs in the precomputed entry maps to
avoid `IndexMap::get_index` lookups in the inner loop of
`states_conflict`
This eliminates an indirect lookup per comparison in the merge-join.
- use unchecked array accesses in hot loops
Where indices are known valid from construction (e.g. the merge-join
in `states_conflict` and dedup), skip bounds checks in the innermost
loops. The compiler can _usually_ prove this and remove the checks
itself, but not always.
2026-04-04 17:58:29 -04:00
Will Lillis
86d99e4f8e
fix(ci): include wasi-sdk and binaryen version files in fixture cache
...
hash
2026-04-04 17:03:58 -04:00
Christian Clason
83d61ea20e
build(deps): bump binaryen to v129
2026-04-04 21:32:49 +02:00
Christian Clason
35d4954030
feat(generate): don't require tree-sitter.json for ABI 15
...
Problem: Many parser projects (about 100 out of ~330 tracked by
nvim-treesitter) still do not contain a `tree-sitter.json` config file,
so `tree-sitter generate` refuses to generate ABI 15 parsers due to the
lack of version information. This prevents these parsers from profiting
from other improvements in ABI 15+ and will eventually make them
unusable when ABI 14 support is dropped.
Solution: Simply use a default version `0.0.0` if no `tree-sitter.json`
is found.
2026-04-04 11:14:43 +02:00
Christian Clason
bf37664420
ci(nvim-ts): minor improvements
...
* remove obsolete msvc-dev-cmd action (runners come with build tools)
* build tree-sitter CLI with --profile optimize (longer build time due
to LTO, but generate workflow should profit)
* increase generate parallelism to 3
2026-04-04 04:38:21 -04:00
dependabot[bot]
422d7cc503
build(deps): bump the npm group across 1 directory with 4 updates
...
Bumps the npm group with 4 updates in the /lib/binding_web directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ), [dts-buddy](https://github.com/sveltejs/dts-buddy ), [esbuild](https://github.com/evanw/esbuild ) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ).
Updates `@types/node` from 24.10.1 to 25.5.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `dts-buddy` from 0.6.2 to 0.7.0
- [Release notes](https://github.com/sveltejs/dts-buddy/releases )
- [Changelog](https://github.com/sveltejs/dts-buddy/blob/main/CHANGELOG.md )
- [Commits](https://github.com/sveltejs/dts-buddy/compare/v0.6.2...v0.7.0 )
Updates `esbuild` from 0.27.1 to 0.27.4
- [Release notes](https://github.com/evanw/esbuild/releases )
- [Changelog](https://github.com/evanw/esbuild/blob/v0.27.4/CHANGELOG.md )
- [Commits](https://github.com/evanw/esbuild/compare/v0.27.1...v0.27.4 )
Updates `typescript-eslint` from 8.48.1 to 8.58.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.58.0/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.5.0
dependency-type: direct:development
update-type: version-update:semver-major
dependency-group: npm
- dependency-name: dts-buddy
dependency-version: 0.7.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: esbuild
dependency-version: 0.27.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.58.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-04-04 01:21:32 -04:00
Christian Clason
3a4245ba23
build(deps): cargo update
2026-04-04 01:20:58 -04:00
dependabot[bot]
7c1e6861fb
build(deps): bump the npm group across 1 directory with 4 updates
...
Bumps the npm group with 4 updates in the /lib/binding_web directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ), [dts-buddy](https://github.com/sveltejs/dts-buddy ), [esbuild](https://github.com/evanw/esbuild ) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ).
Updates `@types/node` from 24.10.1 to 25.5.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `dts-buddy` from 0.6.2 to 0.7.0
- [Release notes](https://github.com/sveltejs/dts-buddy/releases )
- [Changelog](https://github.com/sveltejs/dts-buddy/blob/main/CHANGELOG.md )
- [Commits](https://github.com/sveltejs/dts-buddy/compare/v0.6.2...v0.7.0 )
Updates `esbuild` from 0.27.1 to 0.27.4
- [Release notes](https://github.com/evanw/esbuild/releases )
- [Changelog](https://github.com/evanw/esbuild/blob/v0.27.4/CHANGELOG.md )
- [Commits](https://github.com/evanw/esbuild/compare/v0.27.1...v0.27.4 )
Updates `typescript-eslint` from 8.48.1 to 8.58.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.58.0/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.5.0
dependency-type: direct:development
update-type: version-update:semver-major
dependency-group: npm
- dependency-name: dts-buddy
dependency-version: 0.7.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: esbuild
dependency-version: 0.27.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.58.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-04-03 17:46:45 +02:00
Christian Clason
64698af1ac
ci(actions): bump actions/cache to v5
...
Apparently dependabot doesn't cover the actions/cache/action.yml.
2026-04-01 01:35:49 -04:00
Will Lillis
ba17ca14a0
fix(loader): remove CROSS_RUNNER temorary directory path
...
This isn't used in CI anymore.
2026-03-31 04:00:43 -04:00
Will Lillis
8eafafaa16
fix(test): split up cli testing test
...
Now that the loader race condition is resolved, these tests no longer
need to be grouped together.
2026-03-31 04:00:43 -04:00
Will Lillis
f303a957a3
fix(loader): replace flock-based compilation lock with atomic lock file
...
The previous two-phase locking scheme (probe existing lock file, then
create and compile) had TOCTOU races between phases that caused
spurious failures in CI when tests compiled grammars concurrently.
Replace with a single-phase approach using `create_new` as the sole
synchronization primitive. An RAII `LockFile` guard ensures cleanup
on drop (including panics). Only "builders" attempt to acquire the
lock. Loaders simply load the file. Builders compile a temporary path
and then rename, so loaders are guaranteed a valid shared library.
The winning builder compiles and then drops the lock. Losers poll for
lock file removal, then load. Stale locks from killed processes are
detected via a timeout and an appropriate error message is displayed
to the user.
2026-03-31 04:00:43 -04:00
Will Lillis
3294a64027
perf(cli): replace regex with manual parsing in test file parser
...
This started as a simple one to one rewrite, just removing the regexes,
and quickly devolved into a rewrite of the test parsing logic. In
addition to the memory enhancements, the general flow should be much
clearer now. A few data points:
- JS: walltime -1.3%, peak rss -10.2%
- C: walltime -5.7%, peak rss -4.5%
- Rust: walltime -3.8%, peak rss -2.2%
2026-03-31 04:00:43 -04:00
Franklin Chen
7c2e757c03
generate: avoid panicking when a supertype only has hidden external token children
...
This commit skips adding entries to the subtype map when the subtypes
list is empty to avoid a lookup failure in the topological sort during
node type generation.
Co-authored-by: Amaan Qureshi <git@amaanq.com>
2026-03-31 02:12:56 -04:00
futsuuu
0d4f5cb13f
fix(loader): don't discard CC wrapper command specified in CC variable
2026-03-31 01:43:43 -04:00
Max Brunsfeld
d3ff0ce81d
Fix wasm loading of languages w/ multiple reserved word sets ( #5475 )
2026-03-30 22:27:57 -07:00
Will Lillis
791d7cead4
perf(cli): minor allocation and write call reductions
...
- Cache tree byte range length to avoid redundant FFI calls per test
- Combine 5 separate XML attribute write! calls into one
- Pre-allocate format_sexp output buffer to avoid repeated growth
2026-03-31 01:27:05 -04:00
Will Lillis
827bcdabd9
perf(cli): buffer stdout in parse and query output
...
Wrap stdout in a 64KB BufWriter when writing `parse` output. The tree
walking loop makes many small write calls (parentheses, indentation,
node kinds, ranges, etc.) which are expensive without buffering.
When parsing the jquery.js corpus file, cuts the total time roughly in
half. These savings only show when piping the result to a file,
otherwise terminal rendering time usually dominates, hiding all gains.
Also do the same for the `query` command's output.
2026-03-31 01:27:05 -04:00
Will Lillis
1ec3b3aabe
generate: remove comment cleaning for grammar.json
...
A quick search through github shows that nobody utilizes this, so it's
effectively dead code.
2026-03-31 01:23:15 -04:00
Will Lillis
b53ddd3d54
perf(loader): extract name from grammar.json without regex
...
We have to pay the cost of compiling the regex at runtime, and the
`LazyLock` overhead for each access. The pattern is simple enough that
we can manually parse and extract.
`grammar_json_name` is now ~116x faster on cold start, ~5.6x faster warm
(after the regex has been compiled). Both are fast enough to not matter
much in practice, but some perf gains and eliminating global state is a
win.
2026-03-31 01:23:15 -04:00
dependabot[bot]
1fcbacfff9
ci: bump the actions group with 2 updates
...
Bumps the actions group with 2 updates: [actions/configure-pages](https://github.com/actions/configure-pages ) and [actions/deploy-pages](https://github.com/actions/deploy-pages ).
Updates `actions/configure-pages` from 5 to 6
- [Release notes](https://github.com/actions/configure-pages/releases )
- [Commits](https://github.com/actions/configure-pages/compare/v5...v6 )
Updates `actions/deploy-pages` from 4 to 5
- [Release notes](https://github.com/actions/deploy-pages/releases )
- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5 )
---
updated-dependencies:
- dependency-name: actions/configure-pages
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/deploy-pages
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-03-31 00:34:05 +02:00
dependabot[bot]
e65b7f2875
build(deps): bump cc from 1.2.57 to 1.2.58 in the cargo group
...
Bumps the cargo group with 1 update: [cc](https://github.com/rust-lang/cc-rs ).
Updates `cc` from 1.2.57 to 1.2.58
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.57...cc-v1.2.58 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.58
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-03-31 00:24:03 +02:00
Will Lillis
01dc3dba18
fix(parser): sort error recovery reductions for deterministic ordering
...
The `LookaheadIterator` visits symbols in group order for small parse
states, which can produce `reduce_actions` in a different order than the
original linear symbol scan (pre c1379718 ). Since reductions are applied
sequentially and the last reduction version survives, different orderings
lead to different error recovery outcomes (e.g. losing nodes from ERROR
trees).
Sort the reduce_actions array by symbol (descending) after collection.
The array is typically 1-5 entries, so the insertion sort cost is
negligible and the full optimization speedup is preserved.
2026-03-29 21:36:29 -04:00
Will Lillis
0535b0ca37
fix(lib): correct various typos
2026-03-28 05:23:10 -04:00
Will Lillis
9a48405a87
fix(docs): correct various typos
2026-03-28 05:23:10 -04:00
Will Lillis
cf8719f132
fix(rust): correct various typos
2026-03-28 05:23:10 -04:00
Will Lillis
1a82df3cac
fix(rust): address new nightly lints
2026-03-28 05:23:10 -04:00
Will Lillis
c1379718ab
perf(parser): use LookaheadIterator in error recovery's all-symbol scan
...
In `ts_parser__do_all_potential_reductions`, when `lookahead_symbol` is
0 (error recovery), the code scanned every symbol from 1 to
`token_count` calling ts_language_table_entry for each with most returning
empty. Replace with `LookaheadIterator` which efficiently visits only symbols
with valid actions, yielding 7-20x fewer lookups for typical grammars.
Error recovery throughput improves ~29% (JS) / ~39% (C). Valid-code
parsing is unaffected.
2026-03-28 05:21:50 -04:00
Aaron Paterson
cb01ffcc3f
docs: update WASM build requirements for wasi-sdk
...
Since v0.26.1, `tree-sitter build --wasm` uses wasi-sdk instead of
Emscripten. The CLI automatically downloads wasi-sdk on first use,
so Emscripten, Docker, and Podman are no longer required.
Update the web binding README to reflect this change.
See #4393 for the original switch to wasi-sdk.
2026-03-27 15:07:54 +01:00
dependabot[bot]
cc2ed5e85f
build(deps): bump brace-expansion in /crates/cli/eslint
...
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion ) from 5.0.2 to 5.0.5.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases )
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v5.0.2...v5.0.5 )
---
updated-dependencies:
- dependency-name: brace-expansion
dependency-version: 5.0.5
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-03-27 14:57:11 +01:00
dependabot[bot]
e957e8ce0d
build(deps): bump flatted from 3.4.1 to 3.4.2 in /crates/cli/eslint
...
Bumps [flatted](https://github.com/WebReflection/flatted ) from 3.4.1 to 3.4.2.
- [Commits](https://github.com/WebReflection/flatted/compare/v3.4.1...v3.4.2 )
---
updated-dependencies:
- dependency-name: flatted
dependency-version: 3.4.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-03-27 14:55:25 +01:00
dependabot[bot]
6821fa7611
build(deps): bump flatted from 3.3.2 to 3.4.2 in /lib/binding_web
...
Bumps [flatted](https://github.com/WebReflection/flatted ) from 3.3.2 to 3.4.2.
- [Commits](https://github.com/WebReflection/flatted/compare/v3.3.2...v3.4.2 )
---
updated-dependencies:
- dependency-name: flatted
dependency-version: 3.4.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-03-27 14:55:06 +01:00
dependabot[bot]
fd77bda97a
build(deps): bump cc from 1.2.56 to 1.2.57 in the cargo group
...
Bumps the cargo group with 1 update: [cc](https://github.com/rust-lang/cc-rs ).
Updates `cc` from 1.2.56 to 1.2.57
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.56...cc-v1.2.57 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.57
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-03-23 23:02:18 +01:00
dependabot[bot]
8769254bda
ci: bump actions/create-github-app-token in the actions group
...
Bumps the actions group with 1 update: [actions/create-github-app-token](https://github.com/actions/create-github-app-token ).
Updates `actions/create-github-app-token` from 2 to 3
- [Release notes](https://github.com/actions/create-github-app-token/releases )
- [Commits](https://github.com/actions/create-github-app-token/compare/v2...v3 )
---
updated-dependencies:
- dependency-name: actions/create-github-app-token
dependency-version: '3'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-03-23 23:01:49 +01:00
Will Lillis
08d676b417
fix(lib): document invariants that must be upheld for TSInputEdit
2026-03-22 23:17:01 -04:00
Will Lillis
df3fa372a6
fix(generate): allow disabling qjs-rt feature from CLI
...
The workspace dependency for `tree-sitter-generate` did not set
`default-features = false`, so Cargo always enabled its default
features (including `qjs-rt` and thus `rquickjs`) regardless of
the CLI's `--no-default-features` flag.
Additionally, `tree-sitter-generate` failed to compile without the
`load` feature due to unconditional references to `cfg`-gated items.
- Set `default-features = false` on the workspace `tree-sitter-generate`
dependency so the CLI's feature forwarding actually takes effect.
- Explicitly enable the `load` feature in the CLI's dependency on
`tree-sitter-generate`, since the CLI needs `load`-gated functions
unconditionally.
- Gate necessary imports behind `#[cfg(feature = "load")]` to fix
`tree-sitter-generate`'s build without the `load` feature.
2026-03-21 05:51:10 -04:00
Will Lillis
6011985a6c
fix(loader): unconditionally import Mutex
...
Also, remove the `LazyLock` for `WASM_TOOL_LOCK`. This isn't necessary
as `Mutex::new` is valid in const contexts
2026-03-17 02:27:50 -04:00
dependabot[bot]
af67543764
build(deps): bump anstyle from 1.0.13 to 1.0.14 in the cargo group
...
Bumps the cargo group with 1 update: [anstyle](https://github.com/rust-cli/anstyle ).
Updates `anstyle` from 1.0.13 to 1.0.14
- [Commits](https://github.com/rust-cli/anstyle/compare/v1.0.13...v1.0.14 )
---
updated-dependencies:
- dependency-name: anstyle
dependency-version: 1.0.14
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-03-16 22:56:08 +01:00
dependabot[bot]
94f48e3ebf
build(deps): bump flatted from 3.3.1 to 3.4.1 in /crates/cli/eslint
...
Bumps [flatted](https://github.com/WebReflection/flatted ) from 3.3.1 to 3.4.1.
- [Commits](https://github.com/WebReflection/flatted/compare/v3.3.1...v3.4.1 )
---
updated-dependencies:
- dependency-name: flatted
dependency-version: 3.4.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-03-14 19:19:06 +01:00
Christian Clason
0dd08ce747
ci(release): publish zip archives for tree-sitter-cli
...
Problem: Publishing the built tree-sitter-cli artifacts as gzipped
binaries prevents installing them with `cargo binstall` or packaging
them for Windows Package Manager (`winget`).
Solution: Also create a zip archive for each binary, named
`tree-sitter-cli` to match now-common downstream usage. (Most package
managers have separate `tree-sitter-cli` and `tree-sitter` (library)
packages.)
2026-03-13 15:52:21 -04:00
Will Lillis
30d9c675a4
docs: indicate that dashes are not permitted in parser names
2026-03-13 15:35:14 -04:00
Will Lillis
30ed8da439
Revert "feat: allow - in grammar names"
...
This reverts commit 7d3c321253 .
2026-03-13 15:35:14 -04:00
Christian Clason
5f7326afd5
build(deps): bump binaryen to v127
2026-03-13 15:31:37 -04:00
Christian Clason
2c7375bdb2
build(deps): bump wasi-sdk to v32
2026-03-13 15:31:37 -04:00
Christian Clason
a8845c066c
build(deps): cargo update
2026-03-13 15:28:46 -04:00
Christian Clason
8d656ed837
ci(tests): run required tests on all PRs
...
Problem: `build` tests are marked as "required" but skipped when only
touching documentation, leading to such PRs not being mergable.
Solution: Run tests on all PRs and all commits to the `master` or
`release-0.x` branches.
2026-03-13 15:21:47 -04:00
Riley Bruins
cf302b07d1
fix(query): don't add copies for quantifier steps outside alternations
2026-03-04 10:32:50 +01:00
Riley Bruins
a95fff5477
refactor(query): remove alternative_is_immediate
...
This is implied by `is_pass_through`.
2026-03-04 02:44:53 -05:00
dependabot[bot]
495b069667
ci: bump the actions group with 3 updates
...
Bumps the actions group with 3 updates: [actions/upload-artifact](https://github.com/actions/upload-artifact ), [actions/download-artifact](https://github.com/actions/download-artifact ) and [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance ).
Updates `actions/upload-artifact` from 6 to 7
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7 )
Updates `actions/download-artifact` from 7 to 8
- [Release notes](https://github.com/actions/download-artifact/releases )
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8 )
Updates `actions/attest-build-provenance` from 3 to 4
- [Release notes](https://github.com/actions/attest-build-provenance/releases )
- [Changelog](https://github.com/actions/attest-build-provenance/blob/main/RELEASE.md )
- [Commits](https://github.com/actions/attest-build-provenance/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/download-artifact
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/attest-build-provenance
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-03-03 00:17:34 +01:00
Will Lillis
b27de1038f
fix(rust): remove unused dependencies from loader and lib
2026-03-02 09:14:28 +01:00
Laurent Cheylus
2f747dc9b1
fix(loader): link with libc on OpenBSD to compile parser
...
Fix tree-sitter/tree-sitter#5333
Signed-off-by: Laurent Cheylus <foxy@free.fr>
2026-03-01 17:07:10 -05:00
John Eismeier
1f9b274dfb
chore: fix typos in messages and documentation
...
Signed-off-by: John E <jeis4wpi@outlook.com>
2026-03-01 11:40:15 +01:00
Riley Bruins
4ae90615d1
chore(parser): return NULL, not false, for incomplete parse
...
Small nit; `NULL` is returned everywhere else in this function for an
incomplete parse.
2026-03-01 03:41:27 -05:00
Will Lillis
5fa7514fee
perf(generate): several small optimizations
...
* reduce inner loop range in `CoincidentTokenIndex::new`
The indices computed from `a, b` and `b, a` are identical, so there's
no reason to iterate over the entire set of terminal indices in the
inner loop.
* remove redundant check for `does_match_same_string` in
`token_conflicts`
`does_match_same_string` is already covered within `does_conflict`, so
OR-ing the result of the two together is wasteful.
* mark several functions available for `inline`
Reduces walltime by 0-3% depending on the grammar.
* don't continually reserve space in render buffer
Reserving space up front for containers is great. Doing this in a loop
can lead to _more_ allocations, hurting performance.
* pre-collect terminal indices in `CoincidentTokenIndex`
In `CoincidentTokenIndex::new`, the inner loop re-iterates the
`IndexMap` keys and re-checks is_terminal() for every outer iteration.
This information can be collected once per state, avoiding redundant
calculations.
2026-02-28 18:41:29 +01:00
Will Lillis
83fafba7f0
perf(generate): add basic free list to BitVec's arena allocator
...
In the naive implementation, the backing arena for `BitVec` frees no
memory, resulting in an increase of ~8-15% in peak rss. To mitigate
against this, the arena manages a simple free list, keyed by block
sizes. This keeps the reduction in wall time within 3% in the worst case
(on par for most grammars) with the naive implementation, and caps the
increase in peak rss to <1% over the current master branch.
2026-02-28 18:41:29 +01:00
Will Lillis
4d787db0b1
perf(generate): iterate set bits only in merge_token_set
2026-02-28 18:41:29 +01:00
Will Lillis
34706d3ef1
perf(generate): back BitVec with a custom arena allocator.
2026-02-28 18:41:29 +01:00
Will Lillis
8e6dea673b
perf(generate): pre-alloc some BitVec sizes
...
We don't pre-allocate _all_ `BitVec`s, as this causes a ~20% increase in
peak rss with little to no performance gain. Certain `TokenSet`s are
guaranteed to be filled out to a fixed size, and so reserving the
space (and thus avoiding the arena waste) is safe.
2026-02-28 18:41:29 +01:00
Will Lillis
603c61fcb9
perf(generate): replace SmallBitVec with word-level BitVec for TokenSet
...
`TokenSet` operations (insert_all_terminals, insert_all, etc.) are called
_many_ times during parser generation. `SmallBitVec` performs these
bit-by-bit, which is incredibly slow compared to word-level operations.
Replace `SmallBitVec` with a custom `BitVec` backed by Vec<u64> that
operates at the word level.
2026-02-28 18:41:29 +01:00
dependabot[bot]
f9bcce2e01
build(deps): bump rollup from 4.49.0 to 4.59.0 in /lib/binding_web
...
Bumps [rollup](https://github.com/rollup/rollup ) from 4.49.0 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases )
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rollup/rollup/compare/v4.49.0...v4.59.0 )
---
updated-dependencies:
- dependency-name: rollup
dependency-version: 4.59.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-02-28 15:11:12 +01:00
dependabot[bot]
3a295c7493
build(deps): bump minimatch in /lib/binding_web
...
Bumps and [minimatch](https://github.com/isaacs/minimatch ). These dependencies needed to be updated together.
Updates `minimatch` from 9.0.5 to 9.0.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md )
- [Commits](https://github.com/isaacs/minimatch/compare/v9.0.5...v9.0.9 )
Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md )
- [Commits](https://github.com/isaacs/minimatch/compare/v9.0.5...v9.0.9 )
---
updated-dependencies:
- dependency-name: minimatch
dependency-version: 9.0.9
dependency-type: indirect
- dependency-name: minimatch
dependency-version: 3.1.5
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-02-28 15:08:24 +01:00
dependabot[bot]
6cefea704e
build(deps): bump minimatch from 10.2.2 to 10.2.4 in /crates/cli/eslint
...
Bumps [minimatch](https://github.com/isaacs/minimatch ) from 10.2.2 to 10.2.4.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md )
- [Commits](https://github.com/isaacs/minimatch/compare/v10.2.2...v10.2.4 )
---
updated-dependencies:
- dependency-name: minimatch
dependency-version: 10.2.4
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-02-28 15:05:37 +01:00
Marian Buschsieweke
a3bca3bc45
fix(wasm): pass target triple to clang ( #5385 )
...
Problem: The `clang` binary contained in the WASI-SDK releases downloaded from Github does not work on all platforms (e.g., Alpine/MUSL), but a custom (LLVM) `clang` built for the platform will default to that target, making it impossible to build wasm parsers.
Solution: Always pass `wasm32` target triple when calling clang to compile to wasm.
Notes:
* This assumes the custom `clang` is (installed or linked) to `$TREE_SITTER_WASI_SDK_PATH/bin`.
* This requires a full LLVM clang; Apple clang does not support `wasm` targets.
* Tree-sitter expects a specified version of WASI-SDK, including a specific `clang` version. Other versions may but are not guaranteed to work.
2026-02-28 10:59:56 +01:00
MFS-code
146ea6e12b
fix: skip missing Makefile in version command
2026-02-27 10:01:59 +01:00
Amaan Qureshi
0561079b6e
cli(init): extract per-binding generators and named update functions
...
This commit just refactors the init command's update code, as it's quite messy. The main changes are that most bindings now go through their own generate_{lang} function.
2026-02-27 02:13:03 -05:00
Christian Clason
4d7d35818b
build(deps): bump wasmtime to v36.0.6
2026-02-24 14:29:07 -05:00
dependabot[bot]
b75abfff09
build(deps): bump anyhow from 1.0.101 to 1.0.102 in the cargo group
...
Bumps the cargo group with 1 update: [anyhow](https://github.com/dtolnay/anyhow ).
Updates `anyhow` from 1.0.101 to 1.0.102
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.101...1.0.102 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-version: 1.0.102
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-02-24 09:03:07 +01:00
Will Lillis
6ae37120b3
fix(cli): correct condition to perform __init__.py replacement for
...
`tree-sitter init -u` command
2026-02-23 22:53:06 -05:00
Will Lillis
5210ca0b51
fix(cli): update tree-sitter init -u for recent Package.swift
...
changes
2026-02-23 22:53:06 -05:00
Will Lillis
f1f493e59e
fix(cli): actually write updated Package.swift file
2026-02-23 22:53:06 -05:00
Amaan Qureshi
67f848cac9
loader: invalidate cached wasm toolchains on version mismatch
...
Previously, `get_existing_tool` checked only for the existence of
binaries in the cache directory without verifying their version, meaning bumping the version files had no effect until users manually deleted the cache directories. This commit writes a `.version` marker file after downloading and checks it on subsequent runs, removing stale caches automatically when the expected version changes.
2026-02-23 22:50:20 -05:00
Christian Clason
9b4577c6f2
feat(wasm): bump binaryen to v126
2026-02-22 17:21:20 +01:00
Christian Clason
eeebf706cb
feat(wasm): bump wasi-sdk to v30
2026-02-22 17:21:20 +01:00
Amaan Qureshi
787800dda6
cli(init): fix Package.swift scanner detection when used as a dependency
...
The template used `FileManager.default.fileExists(atPath: "src/scanner.c")` with a relative path, which resolves against the process cwd. When SwiftPM evaluates a dependency's manifest, the cwd is the consumer's directory, so the check returns `false` even when `scanner.c` exists, causing undefined symbol linker errors.
This commit uses `Context.packageDirectory`, which is available since `swift-tools-version:5.6`, to resolve the path against the package root. This does bump the minimum tools version from 5.3 to 5.6.
2026-02-22 10:55:16 -05:00
Christian Clason
e62bf4ee5f
ci: retrigger crates check on PR updates
2026-02-22 15:29:39 +01:00
dependabot[bot]
224598586c
build(deps): bump minimatch, eslint and eslint-plugin-jsdoc
...
Bumps [minimatch](https://github.com/isaacs/minimatch ) to 10.2.2 and updates ancestor dependencies [minimatch](https://github.com/isaacs/minimatch ), [eslint](https://github.com/eslint/eslint ) and [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc ). These dependencies need to be updated together.
Updates `minimatch` from 3.1.2 to 10.2.2
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md )
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v10.2.2 )
Updates `eslint` from 9.39.2 to 10.0.1
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v9.39.2...v10.0.1 )
Updates `eslint-plugin-jsdoc` from 50.2.4 to 62.7.0
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases )
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.4...v62.7.0 )
---
updated-dependencies:
- dependency-name: minimatch
dependency-version: 10.2.2
dependency-type: indirect
- dependency-name: eslint
dependency-version: 10.0.1
dependency-type: indirect
- dependency-name: eslint-plugin-jsdoc
dependency-version: 62.7.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-02-21 16:48:12 +01:00
dependabot[bot]
8e330c7f24
build(deps): bump ajv from 6.12.6 to 6.14.0 in /crates/cli/eslint
...
Bumps [ajv](https://github.com/ajv-validator/ajv ) from 6.12.6 to 6.14.0.
- [Release notes](https://github.com/ajv-validator/ajv/releases )
- [Commits](https://github.com/ajv-validator/ajv/compare/v6.12.6...v6.14.0 )
---
updated-dependencies:
- dependency-name: ajv
dependency-version: 6.14.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-02-21 16:43:21 +01:00
Will Lillis
d0714e0828
docs: add basic information about creating releases
2026-02-21 15:59:32 +01:00
Will Lillis
cf98b9b61e
ci: add a dry-run workflow to test rust releases
2026-02-21 15:59:32 +01:00
lucasew
4e9fededff
fix(lib): cast NULL in ts_subtree_children macro
...
Explicitly casting NULL to (Subtree *) in the ternary expression ensures
type consistency. This resolves ambiguous type inference issues encountered
by strict static analysis tools and C-to-Go transpilers (like ccgo).
Signed-off-by: lucasew <lucas59356@gmail.com>
2026-02-21 01:37:03 -05:00
Will Lillis
034780a0c9
fix(generate): unsafe extern -> extern in rendered C parser
2026-02-20 21:40:23 -05:00
Christian Clason
a21ee02710
build(deps): bump wasmtime to v36.0.5 LTS
...
Wasmtime v34 introduced breaking ABI changes to `wasmtime_func_t` and
`wasmtime_table_t` structures. The `__private` field changed from
`size_t` to `void*`, requiring code updates to store complete
`wasmtime_func_t` structures instead of raw indices.
Changes:
- `BuiltinFunctionIndices`: `uint32_t` -> `wasmtime_func_t`
- `stdlib_fn_indices`: `uint32_t*` -> `wasmtime_func_t*`
- `FunctionDefinition.storage_location`: `uint32_t*` -> `void*`
- `get_builtin_extern()`: simplified to return stored func directly
- Lexer functions: use temp array for func storage, store table index
- Zero-initialize `builtin_fn_indices` so `store_id == 0` sentinel
reliably detects missing stdlib exports
- Free `lexer_funcs` on error paths in `ts_wasm_store_new`
- Remove stale `(uint32_t *)` casts from `lexer_definitions`
Co-Authored-By: Amaan Qureshi <git@amaanq.com>
Co-Authored-By: nzinfo <li.monan@gmail.com>
2026-02-19 23:40:40 -05:00
Sergey Reshetnikov
5e23ccaac2
fix(lib): add RedoxOS support to portable/endian.h
2026-02-18 16:36:15 +01:00
Sergey Reshetnikov
5784924c59
use provided by RedoxOS byte orders implementations
2026-02-18 16:36:15 +01:00
Will Lillis
256df9304f
rust: explicitly align CLI's encoding enum with constants from
...
tree_sitter::ffi
2026-02-18 01:54:20 -05:00
Will Lillis
27e1199387
feat(highlight)!: utf16 support
2026-02-18 01:54:20 -05:00
Amaan Qureshi
e4aacc9a91
loader: replace fs4 with std file locking
2026-02-18 00:59:34 -05:00
Amaan Qureshi
b8fcf27661
build(rust): update deps
2026-02-18 00:59:34 -05:00
Amaan Qureshi
ebd2a56b5d
treewide: add taplo config and reformat toml files
2026-02-18 00:59:34 -05:00
Amaan Qureshi
921af361cf
xtask: fix clippy warnings from edition bump
2026-02-18 00:59:34 -05:00
Amaan Qureshi
7deb5092c6
cli: fix clippy warnings from edition bump
2026-02-18 00:59:34 -05:00
Amaan Qureshi
1c66a7f871
loader: fix clippy warnings from edition bump
2026-02-18 00:59:34 -05:00
Amaan Qureshi
1aa2fec173
tags: fix clippy warnings from edition bump
2026-02-18 00:59:34 -05:00
Amaan Qureshi
922bae62af
highlight: fix clippy warnings from edition bump
2026-02-18 00:59:34 -05:00
Amaan Qureshi
26c52db75b
generate: fix clippy warnings from edition bump
2026-02-18 00:59:34 -05:00
Amaan Qureshi
77c8f075f3
lib: fix clippy warnings from edition bump
2026-02-18 00:59:34 -05:00
Amaan Qureshi
0188262b4a
rust: bump edition to 2024, MSRV to 1.90, and remove unnecessary allows
2026-02-18 00:59:34 -05:00
Amaan Qureshi
792bba8dab
nix: support single-checkout and multi-workspace direnv setups
...
The current `.envrc` unconditionally runs `use flake`, which breaks multi-workspace
jj setups where workspace subdirectories each have their own `.envrc`. Entering a
workspace unloads the root's nix env even when the workspace `.envrc` is blocked,
because direnv always unloads the parent env on any `.envrc` transition.
`source_up_if_exists` re-runs the parent `.envrc` and inherits its nix env in a
multi-workspace setup (fast due to caching). The `IN_NIX_SHELL` guard then skips
`use flake path:.`, which only runs in a plain single checkout where no parent
`.envrc` exists and `IN_NIX_SHELL` is unset.
2026-02-18 00:50:06 -05:00
dependabot[bot]
957ee4e634
ci: bump the actions group with 2 updates
...
Bumps the actions group with 2 updates: [actions/cache](https://github.com/actions/cache ) and [actions/setup-node](https://github.com/actions/setup-node ).
Updates `actions/cache` from 4 to 5
- [Release notes](https://github.com/actions/cache/releases )
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md )
- [Commits](https://github.com/actions/cache/compare/v4...v5 )
Updates `actions/setup-node` from 4 to 6
- [Release notes](https://github.com/actions/setup-node/releases )
- [Commits](https://github.com/actions/setup-node/compare/v4...v6 )
---
updated-dependencies:
- dependency-name: actions/cache
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/setup-node
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-02-16 22:42:58 +01:00
dependabot[bot]
6952936eac
build(deps): bump the cargo group with 4 updates
...
Bumps the cargo group with 4 updates: [cc](https://github.com/rust-lang/cc-rs ), [clap](https://github.com/clap-rs/clap ), [clap_complete](https://github.com/clap-rs/clap ) and [ctrlc](https://github.com/Detegr/rust-ctrlc ).
Updates `cc` from 1.2.55 to 1.2.56
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.55...cc-v1.2.56 )
Updates `clap` from 4.5.57 to 4.5.58
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.57...clap_complete-v4.5.58 )
Updates `clap_complete` from 4.5.65 to 4.5.66
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.65...clap_complete-v4.5.66 )
Updates `ctrlc` from 3.5.1 to 3.5.2
- [Release notes](https://github.com/Detegr/rust-ctrlc/releases )
- [Commits](https://github.com/Detegr/rust-ctrlc/compare/3.5.1...3.5.2 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.56
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.5.58
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-version: 4.5.66
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: ctrlc
dependency-version: 3.5.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-02-16 22:42:31 +01:00
dependabot[bot]
f3a9b493c0
build(deps): bump the cargo group with 5 updates
...
Bumps the cargo group with 5 updates:
| Package | From | To |
| --- | --- | --- |
| [anyhow](https://github.com/dtolnay/anyhow ) | `1.0.100` | `1.0.101` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.56` | `4.5.57` |
| [regex](https://github.com/rust-lang/regex ) | `1.12.2` | `1.12.3` |
| [regex-syntax](https://github.com/rust-lang/regex ) | `0.8.8` | `0.8.9` |
| [schemars](https://github.com/GREsau/schemars ) | `1.2.0` | `1.2.1` |
Updates `anyhow` from 1.0.100 to 1.0.101
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.100...1.0.101 )
Updates `clap` from 4.5.56 to 4.5.57
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.56...clap_complete-v4.5.57 )
Updates `regex` from 1.12.2 to 1.12.3
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.12.2...1.12.3 )
Updates `regex-syntax` from 0.8.8 to 0.8.9
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/regex-syntax-0.8.8...regex-syntax-0.8.9 )
Updates `schemars` from 1.2.0 to 1.2.1
- [Release notes](https://github.com/GREsau/schemars/releases )
- [Changelog](https://github.com/GREsau/schemars/blob/master/CHANGELOG.md )
- [Commits](https://github.com/GREsau/schemars/compare/v1.2.0...v1.2.1 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-version: 1.0.101
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.5.57
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: regex
dependency-version: 1.12.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: regex-syntax
dependency-version: 0.8.9
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: schemars
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-02-10 10:50:33 +01:00
dependabot[bot]
377c3d1c75
build(deps): bump eslint from 9.11.0 to 9.39.2 in /crates/cli/eslint
...
Bumps [eslint](https://github.com/eslint/eslint ) from 9.11.0 to 9.39.2.
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v9.11.0...v9.39.2 )
---
updated-dependencies:
- dependency-name: eslint
dependency-version: 9.39.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-02-09 22:55:27 -05:00
Amaan Qureshi
9a78267a7b
flake: update lockfile
2026-02-09 22:52:13 -05:00
Amaan Qureshi
a91efd56f8
ci: cache npm packages for the web bindings
2026-02-09 22:52:13 -05:00
Amaan Qureshi
e7389ccc2a
make: drop redundant cargo check
2026-02-09 22:52:13 -05:00
Amaan Qureshi
b1b0ef9238
ci: skip release build on PRs
2026-02-09 22:52:13 -05:00
Amaan Qureshi
ad2f2ae76d
ci: don't update msys2 packages
2026-02-09 22:52:13 -05:00
Amaan Qureshi
8b72e64c3c
ci: replace setup-emsdk action with manual install + actions/cache
2026-02-09 22:52:13 -05:00
Amaan Qureshi
68b6020e8e
ci: download pre-built wasmtime C API instead of compiling from source
...
ci: cache npm
2026-02-09 22:52:13 -05:00
Amaan Qureshi
4eefcef0fc
ci: only run wasm tests on linux x64 and mac arm64
2026-02-09 22:52:13 -05:00
Chad McElligott
081c90b769
web: add default export to CJS bundle
2026-02-09 22:23:12 -05:00
Will Lillis
596a4d69bb
fix(query): prevent cross-branch capture contamination in alternations with quantifiers
...
When a branch inside an alternation has a + or * quantifier, the
quantifier's pass_through step loops back to the branch's first step.
The alternation linking also sets that step's alternative_index to
point to the next branch. This causes the quantifier loop-back to
incorrectly explore other branches in the case of a failed match that
follows a successful match, contaminating captures.
This is corrected by redirecting the quantifier loop-back to a
"clean" copy of the target step without the alternative index pointing
to the next alternation branch.
Co-authored-by: Riley Bruins <ribru17@hotmail.com>
2026-02-09 21:57:29 -05:00
Jeremy Fleischman
7d3c321253
feat: allow - in grammar names
...
A number of grammars in the wild have this character in their name:
- https://github.com/sogaiu/tree-sitter-janet-simple/pull/7
- https://github.com/tree-sitter/tree-sitter-c-sharp/pull/408
- https://github.com/tree-sitter/tree-sitter-embedded-template/pull/45
- https://github.com/tree-sitter/tree-sitter-ql-dbscheme/pull/7
I read through https://github.com/tree-sitter/tree-sitter/pull/3700 and
https://github.com/tree-sitter/tree-sitter/issues/3637 , and it doesn't
look like there was much discussion about this name regex, so hopefully
this is an acceptable change?
2026-02-09 21:28:04 -05:00
Will Lillis
48e921883a
fix(rust)!: return u32 from Node::child_count
...
This matches the type returned from the underlying C library, and also
composes more cleanly with other functions like `Node::child`
2026-02-09 21:05:48 -05:00
Will Lillis
9dd09fec1e
fix(cli): require tree-sitter CLI in CMake template
2026-02-08 18:40:57 -05:00
Amaan Qureshi
22cda59a19
lib: clean up strict aliasing fixes in array.h
2026-02-08 11:09:31 +01:00
Amaan Qureshi
a234575b04
nix: fix clangd not working
2026-02-08 11:09:31 +01:00
Will Lillis
73b2f981d5
fix(cli): allow for both debug logs and graphs
2026-02-07 17:03:56 -05:00
Will Lillis
c4acd92930
fix(loader): download wasm tools into a tempdir
...
This ensures the directories are cleaned up even in the case of an
error during or after download.
2026-02-04 22:23:11 -05:00
Will Lillis
953e3f2630
fix(test): acquire lock before downloading wasm tools
...
Because Rust tests run in parallel, two tests compiling a parser to wasm
can both try to download wasi-sdk and wasm-opt to a common location,
causing corrupted files and/or other failures. To prevent this, we can
guard access to these tools. `cfg(test)` isn't passed across crate
boundaries, so this lock must be present for all build configurations.
2026-02-04 22:23:11 -05:00
Bertie Wheen
39f407e3ff
fix(lib): correct ts_parser_parse docstring ( #5295 )
2026-02-04 00:49:54 -05:00
dependabot[bot]
73bf3febf7
build(deps): bump bytes from 1.11.0 to 1.11.1
...
Bumps [bytes](https://github.com/tokio-rs/bytes ) from 1.11.0 to 1.11.1.
- [Release notes](https://github.com/tokio-rs/bytes/releases )
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md )
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.11.0...v1.11.1 )
---
updated-dependencies:
- dependency-name: bytes
dependency-version: 1.11.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-02-03 22:46:35 +01:00
Will Lillis
eab567a02d
fix(rust): place std::env::set_var inside unsafe blocks
...
This is optional for the 2021 but required for 2024. The function is
unsafe either way and should be marked as such.
2026-02-02 04:29:13 -05:00
Will Lillis
2338c3d649
rust: bump language crate version
...
The language crate's version had to be bumped to 0.1.7 on the 0.26
release branch, so bump to 0.1.8 on master
2026-02-01 15:00:22 -05:00
Will Lillis
7e1d8add13
feat(cli): add --verbose flag to build command
...
This displays the working directory of the command (if present),
compiler used, all of its arguments, any environment variables set,
and anything written to stdout/stderr by the compilation tool.
2026-02-01 13:00:02 -05:00
Will Lillis
7100767f64
docs: include info on environment variables for fuzz command
2026-02-01 12:31:13 -05:00
Will Lillis
0b8f124453
fix(cli): include default values for --edits and --iterations in
...
`fuzz` command help
2026-02-01 12:31:13 -05:00
Will Lillis
c9d9ce6cbb
fix(cli): use --edits value for fuzz tests
2026-02-01 12:31:13 -05:00
Will Lillis
337e20e0f2
fix(wasm): when reallocating the last allocated region, properly grow
...
the region in place.
Previous changes to `malloc` caused `realloc` to sometimes pull regions
off of the free list during this optimization. Because no `memcpy` is
performed, this resulted in corrupted data returning to the caller.
Co-authored-by: trim21 <i@trim21.me>
2026-01-31 18:24:31 -05:00
Will Lillis
8fe076695f
test: rename wasm corpus test "wasm_realloc"->"wasm_realloc_overflow_heap"
2026-01-31 18:24:31 -05:00
Will Lillis
439030503c
fix(loader): don't rely on nm to verify scanner symbols
...
Relying on a user's system's installation of `nm` has proven to be bug
prone and flaky. Instead, we can enforce that these symbols are defined
by requiring the linker to resolve them. This is already the default on
macos, but linux has looser requirements which defers the error to when
the library is opened. This check was not run on Windows (because
there's no `nm`), but the msvc linker is similiarly strict to macos's
w.r.t. resolving symbols at build time rather than runtime, so there's
no issue here.
2026-01-31 17:59:50 -05:00
Will Lillis
18e2fb1e78
fix(loader): account for nm/ld fix on newer powerpc linux toolchains
...
Previously a bug in linux powerpc linkers/nm caused function symbols to
be incorrectly reported in the data "D" section. Newer toolchains now
correctly report these symbols' sections as "T". Account for both to
maintain compatibility with older toolchains
2026-01-31 17:59:50 -05:00
Christian Clason
69c6ce8c17
build(deps): cargo update
2026-01-31 17:51:43 -05:00
Christian Clason
1850706af0
fix(wasm): don't wasm-opt twice
...
Now that we run `wasm-opt` explicitly after compilation, skip it during
the `clang` compile and link phase.
2026-01-31 10:43:19 +01:00
Will Lillis
94f4143ad6
generate: return error rather than assert when ABI incompatibility is
...
detected
2026-01-30 22:45:07 -05:00
Will Lillis
e65dc4c3b5
fix(generate): ensure parse table action id's fit within uint16_t
...
Without this check, action ids > 65,535 can be assigned to `uint16_t`s
in parser.c. This causes parsing to either crash or silently misbehave.
2026-01-30 22:45:07 -05:00
Will Lillis
4a2b8ed299
fix(generate): error if supertype is defined as a terminal rule
2026-01-30 22:35:41 -05:00
Will Lillis
4f8983b89f
fix(ci): add wasm-stdlib.h to cache key
2026-01-27 10:25:43 +01:00
Will Lillis
7ad63a865e
fix(wasm): return early from calloc if malloc fails
...
Co-authored-by: trim21 <i@trim21.me>
2026-01-26 21:14:14 -05:00
Will Lillis
634ba3a1f7
fix(wasm): correct several bugs in realloc
...
- free memory if 0 size is passed in
- Don't `memcpy` contents if new pointer is `NULL`
- Copy old region's contents only up to size of new region
- free old region
Co-authored-by: trim21 <i@trim21.me>
2026-01-26 21:14:14 -05:00
dependabot[bot]
2961ef5135
build(deps): bump the cargo group with 2 updates
...
Bumps the cargo group with 2 updates: [cc](https://github.com/rust-lang/cc-rs ) and [thiserror](https://github.com/dtolnay/thiserror ).
Updates `cc` from 1.2.53 to 1.2.54
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.53...cc-v1.2.54 )
Updates `thiserror` from 2.0.17 to 2.0.18
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/2.0.17...2.0.18 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.54
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: thiserror
dependency-version: 2.0.18
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-01-26 23:23:15 +00:00
Will Lillis
8816d4494f
docs: document parser library symbol checks for build command
2026-01-25 18:19:32 -05:00
Will Lillis
c0137208ec
fix(rust): address new nightly lint
2026-01-25 17:18:43 -05:00
Will Lillis
8f4df58983
fix(init): correct paths in rust bindings on Windows
2026-01-25 17:18:43 -05:00
Will Lillis
5177b3dc26
fix(lib): address strict aliasing violations with Array type
...
Altering the `Array` type itself isn't feasible, as this causes
unacceptable breakage with existing parsers that depend on it. Instead,
pass in individual `Array` fields for to various `_array__*` functions.
Any time the `contents` of an array may be modified (`free`d, `realloc`d,
etc), return the potentially new address out by value. This prevents any
strict aliasing violations as we're no longer writing to a type-casted
pointer.
Co-authored-by: Nathaniel Wesley Filardo <nwfilardo@gmail.com>
2026-01-24 14:18:40 -05:00
Will Lillis
55fdc50e81
feat(xtask): allow alternate branch for fixture grammars
...
Set tree-sitter-php fixture to `upstream_test_fixture` branch.
Also remove the `--update` flag, as it does nothing.
2026-01-24 14:18:40 -05:00
Will Lillis
d736b259de
wasm: build wctype.c as part of stdlib
2026-01-24 14:19:00 +01:00
Christian Clason
397452ead5
fix(wasm): add iswpunct to stdlib
2026-01-24 14:19:00 +01:00
Will Lillis
0ab73028d6
wasm: regenerate stdlib
2026-01-24 03:04:44 -05:00
Sasha Koss
ecb854da3b
Add missing Wasm shims required by tree-sitter-ruby
2026-01-24 03:04:44 -05:00
Sasha Koss
400c2b5a3b
Make __assert_fail static inline to avoid duplicate symbol rust-lld error
2026-01-24 03:04:44 -05:00
Will Lillis
148b4ca1b2
fix(loader): search correct cache directory for wasi-sdk clang
2026-01-23 09:10:30 +01:00
Will Lillis
aea4ef2338
feat(xtask): give wasm-opt the wasi-sdk treatment
2026-01-21 21:30:13 -05:00
Will Lillis
b1ec6a2586
feat(loader): use wasm-opt to optimize wasm files after compilation
...
Similar to wasi-sdk's `clang`, if `wasm-opt` cannot be found, binaryen
is downloaded, unzipped, and cached for future use.
2026-01-21 21:30:13 -05:00
dependabot[bot]
6739742fb6
build(deps): bump cc from 1.2.52 to 1.2.53 in the cargo group
...
Bumps the cargo group with 1 update: [cc](https://github.com/rust-lang/cc-rs ).
Updates `cc` from 1.2.52 to 1.2.53
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.52...cc-v1.2.53 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.53
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-01-20 10:34:48 +01:00
dependabot[bot]
d251226a3c
ci: bump actions/github-script from 7 to 8 in the actions group
...
Bumps the actions group with 1 update: [actions/github-script](https://github.com/actions/github-script ).
Updates `actions/github-script` from 7 to 8
- [Release notes](https://github.com/actions/github-script/releases )
- [Commits](https://github.com/actions/github-script/compare/v7...v8 )
---
updated-dependencies:
- dependency-name: actions/github-script
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-01-20 10:34:40 +01:00
Tam1SH
ae8184b8b9
docs(playground): highlight full row for highlighted nodes
2026-01-18 23:48:58 -05:00
Will Lillis
470ecf8996
feat(ci): ensure wasm-stdlib.h is regenerated when wasm stdlib source
...
files are modified.
2026-01-18 22:19:52 -05:00
Will Lillis
0cdb6bef7b
fix(cli): warn user when nm can't be run to verify the symbols inside
...
the parser being built
2026-01-18 22:19:19 -05:00
theanarkh
cd603fa981
feat: free memory automatically ( #5225 )
2026-01-18 14:39:52 -08:00
DanikVitek
b12009a746
fix: Clarify/fix lifetimes
...
- One has to think about lifetimes if a type has one:
- `<&'a Node<'tree>>::language` now returns `LanguageRef<'tree>` instead of
`LanguageRef<'a>`, as it should;
- Remove explicit "outlives" requirements from `QueryMatches`, `QueryCaptures`,
and their impl blocks, because they're inferred
- Removed unnecessary `&mut` from `cst_render_node`'s `cursor` parameter
2026-01-17 00:14:21 -05:00
DanikVitek
9f9a0bc410
fix: Renamed TreeCursor<'cursor> into TreeCursor<'tree>,
...
to be consistant with the usages and reduse confusion
2026-01-17 00:14:21 -05:00
Christian Clason
5d290a2a75
fix(wasm): regenerate stdlib with wasm-opt
...
Problem: Output of `cargo xtask build-wasm-stdlib` depends on whether
`wasm-opt` is installed (since `clang` will use it by default if it
finds it).
Solution: Install it and rerun the xtask.
2026-01-15 15:33:37 +01:00
Will Lillis
5808350bfe
fix(docs): appease clippy regarding spacing in README
2026-01-15 10:38:57 +01:00
Will Lillis
e64e74d5ed
docs: adhere to 120 new word column limit for docs
2026-01-14 18:11:42 -05:00
Will Lillis
1a88b26a10
docs: note requirement to rebuild wasm stdlib
2026-01-14 18:11:42 -05:00
dependabot[bot]
6c05cdfb0c
build(deps): bump the cargo group with 3 updates
...
Bumps the cargo group with 3 updates: [cc](https://github.com/rust-lang/cc-rs ), [clap_complete](https://github.com/clap-rs/clap ) and [serde_json](https://github.com/serde-rs/json ).
Updates `cc` from 1.2.51 to 1.2.52
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.51...cc-v1.2.52 )
Updates `clap_complete` from 4.5.64 to 4.5.65
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.64...clap_complete-v4.5.65 )
Updates `serde_json` from 1.0.148 to 1.0.149
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.148...v1.0.149 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.52
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-version: 4.5.65
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_json
dependency-version: 1.0.149
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-01-13 10:13:03 +01:00
Will Lillis
aefae11c0d
fix(build): define _BSD_SOURCE
...
System endian conversion macros are gated behind this feature flag for
older versions of GLIBC. `_BSD_SOURCE` and `_SVID_SOURCE` were
deprecated and replaced with `_DEFAULT_SOURCE` starting with GLIBC 2.19.
2026-01-12 19:41:58 -05:00
Kevin Wang
630fa52717
fix(templates): fix python free-threading compatibility
2026-01-09 11:44:41 +02:00
dependabot[bot]
eea85f4eff
build(deps): bump clap from 4.5.53 to 4.5.54 in the cargo group
...
Bumps the cargo group with 1 update: [clap](https://github.com/clap-rs/clap ).
Updates `clap` from 4.5.53 to 4.5.54
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.53...clap_complete-v4.5.54 )
---
updated-dependencies:
- dependency-name: clap
dependency-version: 4.5.54
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-01-07 16:42:00 +00:00
Christian Clason
cd6672701b
fix(wasm): update wasm-stdlib.h
2026-01-06 17:28:39 +01:00
Trim21
f4ca3d95ca
fix(wasm) add common definitions to stdlib ( #5199 )
...
Also expose `strlen` through `string.h` instead of `stdio.h`.
2026-01-06 12:01:37 +01:00
skewb1k
17e3c7a5c5
fix(cli): restore test summary output for tree-sitter test
...
Problem:
After commit f02d7e7e33
the `tree-sitter test` command no longer printed the final test summary,
leaving empty line. The `Stats` struct was embedded into `TestSummary`,
and the explicit call to print it was removed.
Solution:
Print `parse_stats` from `TestSummary.fmt()` implementation.
2026-01-04 21:31:11 -08:00
WillLillis
dd60d5cff0
feat(cli): fill in missing fields to tree-sitter.json when running
...
`tree-sitter init -u`
2025-12-31 14:08:09 -05:00
WillLillis
f1288ea5c9
fix(cli): increase verbosity of tree-sitter init -u updates
...
Also, use `info` logs rather than `warn`
2025-12-31 14:08:09 -05:00
Christian Clason
47ae060966
feat(quickjs): add console support for Array
2025-12-31 13:32:09 +01:00
Christian Clason
a1893b4420
build(deps): update rquickjs to 0.11.0
2025-12-31 13:32:09 +01:00
skewb1k
999e041d49
docs: add tip about using test --update flag
2025-12-31 01:43:48 -05:00
skewb1k
0d4d854809
feat(cli): make test --update rewrite all corpus files
2025-12-31 01:43:48 -05:00
WillLillis
93d793d249
fix(cli): canonicalize build --output path
...
This fixes a potential issue with the new lock file hashing mechanism,
in which two different path literals pointing to the same location would
hash to separate lock files, allowing a race condition.
2025-12-30 17:07:04 +01:00
dependabot[bot]
82486d4b0a
build(deps): bump the cargo group with 2 updates
...
Bumps the cargo group with 2 updates: [cc](https://github.com/rust-lang/cc-rs ) and [serde_json](https://github.com/serde-rs/json ).
Updates `cc` from 1.2.50 to 1.2.51
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.50...cc-v1.2.51 )
Updates `serde_json` from 1.0.145 to 1.0.147
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.145...v1.0.147 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.51
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_json
dependency-version: 1.0.147
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-12-30 17:06:34 +01:00
Firas al-Khalil
5d9605a91e
feat(cli): concurrent build of same grammar on different paths
2025-12-29 00:20:05 -05:00
Firas al-Khalil
5293dd683e
fix(cli): report library load failure
...
Instead of panicking somehere else.
This happens on concurrent builds of the the same grammar.
2025-12-29 00:20:05 -05:00
Firas al-Khalil
62effdf128
fix(cli): report context on compile fail
2025-12-29 00:20:05 -05:00
WillLillis
8e4f21aba0
fix(rust): address nightly clippy lint
2025-12-27 17:05:53 -05:00
WillLillis
5208299bbb
fix(cli): set language in cwd for all usages of highlight command
2025-12-27 17:05:53 -05:00
Christian Clason
ba7350c7ee
docs(cli): better description of files generated by init
2025-12-25 13:16:57 +01:00
skewb1k
f96d518ebf
fix(cli): remove extra newline with --cst
...
Makes CST output consistent with other formats.
2025-12-24 15:06:48 +01:00
skewb1k
d5b82fbbab
fix(cli): remove extra indentation with --cst --no-ranges
2025-12-24 15:06:48 +01:00
kevin-hua-kraken
a7d8c0cbb2
fix(playground): update query API
2025-12-23 10:36:40 +02:00
dependabot[bot]
24007727d4
build(deps): bump the cargo group with 2 updates
...
Bumps the cargo group with 2 updates: [cc](https://github.com/rust-lang/cc-rs ) and [clap_complete](https://github.com/clap-rs/clap ).
Updates `cc` from 1.2.49 to 1.2.50
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.49...cc-v1.2.50 )
Updates `clap_complete` from 4.5.61 to 4.5.62
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.61...clap_complete-v4.5.62 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.50
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-version: 4.5.62
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-12-22 22:18:42 +01:00
dependabot[bot]
6aa63a7213
ci: bump korthout/backport-action from 3 to 4 in the actions group
...
Bumps the actions group with 1 update: [korthout/backport-action](https://github.com/korthout/backport-action ).
Updates `korthout/backport-action` from 3 to 4
- [Release notes](https://github.com/korthout/backport-action/releases )
- [Commits](https://github.com/korthout/backport-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: korthout/backport-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-12-22 22:18:09 +01:00
Will Lillis
eacb95c85d
fix(cli): correct discrepancy with cst for --no-ranges
2025-12-16 21:34:03 -05:00
dependabot[bot]
6967640571
ci: bump the actions group with 2 updates
...
Bumps the actions group with 2 updates: [actions/upload-artifact](https://github.com/actions/upload-artifact ) and [actions/download-artifact](https://github.com/actions/download-artifact ).
Updates `actions/upload-artifact` from 5 to 6
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6 )
Updates `actions/download-artifact` from 6 to 7
- [Release notes](https://github.com/actions/download-artifact/releases )
- [Commits](https://github.com/actions/download-artifact/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/download-artifact
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 22:26:50 +01:00
skewb1k
4ac2d5d276
fix(cli): trailing whitespace after multiline text nodes in CST
...
Problem:
The CST printer emits trailing whitespace after multiline text nodes.
With 1704c604bf and `:cst` corpus tests
this causes trailing spaces to appear on `test --update`.
These spaces cannot be removed afterward, as the test runner
expects an exact character-for-character match for CST tests.
Solution:
Print whitespace only if node is not multiline.
2025-12-14 21:34:50 -05:00
skewb1k
642b56d9af
fix(docs): remove conflicting --release cargo flag in contributing.md
...
The argument '--release' cannot be used with '--profile <PROFILE-NAME>'
2025-12-14 20:35:13 +01:00
Christian Clason
0574fcf256
docs(cli): include information on generated files
2025-12-14 14:26:49 +01:00
Christian Clason
98de2bc1a8
feat: start working on v0.27
...
* bump tree-sitter crates to 0.27.0
* bump tree-sitter-language to 0.1.7
2025-12-13 14:14:33 +01:00
Christian Clason
cd4b6e2ef9
0.26.3
2025-12-13 13:41:03 +01:00
Christian Clason
8caecbc13f
build(deps): cargo update
2025-12-13 12:58:59 +01:00
ObserverOfTime
1b654ae35d
ci(release): use node 24
2025-12-13 06:28:18 -05:00
Marcono1234
3bd44afcaa
docs(cli): fix wrong file path for Java bindings test
...
The test is currently generated in the default (= unnamed) package.
2025-12-10 20:54:07 +02:00
Will Lillis
8b8199775f
0.26.x
...
Also bump the tree-sitter-language crate to 0.1.6
2025-12-09 17:19:25 -05:00
dependabot[bot]
744e556f7e
build(deps): bump esbuild
...
Bumps the npm group with 1 update in the /lib/binding_web directory: [esbuild](https://github.com/evanw/esbuild ).
Updates `esbuild` from 0.27.0 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases )
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md )
- [Commits](https://github.com/evanw/esbuild/compare/v0.27.0...v0.27.1 )
---
updated-dependencies:
- dependency-name: esbuild
dependency-version: 0.27.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 23:43:47 +01:00
Will Lillis
8a3dcc6155
release 0.26.1
2025-12-08 17:05:03 -05:00
dependabot[bot]
b0afbf3762
build(deps): bump wasmparser from 0.242.0 to 0.243.0 in the cargo group
...
Bumps the cargo group with 1 update: [wasmparser](https://github.com/bytecodealliance/wasm-tools ).
Updates `wasmparser` from 0.242.0 to 0.243.0
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/commits )
---
updated-dependencies:
- dependency-name: wasmparser
dependency-version: 0.243.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 22:38:09 +01:00
Will Lillis
974be3bb30
fix(rust): specify workspace dependency of tree-sitter-language crate
...
as "0.1"
If a rust project depends on both the tree-sitter lib bindings and the
language crate, cargo needs to be able to resolve a common version of
the tree-sitter-language crate. Specifying exactly "0.1.5" for the lib
bindings is overly restrictive, and could lead to future headaches. By
specifying "0.1", any "0.1.x" version should be available to resolve to.
2025-12-08 16:00:57 -05:00
ObserverOfTime
d861e2bcd9
docs(cli): list Java & Zig binding files
2025-12-08 15:47:15 -05:00
ObserverOfTime
b9c2d1dc89
feat(bindings): add Java bindings
2025-12-08 15:47:15 -05:00
ObserverOfTime
8ca17d1bb1
ci(release): enable trusted publishing & attestations
2025-12-08 15:38:21 -05:00
ObserverOfTime
3182efeccc
feat(bindings): add byproducts to cmake
2025-12-08 04:35:09 -05:00
Will Lillis
bec7c3272b
fix(loader)!: correct arguments passed to select_language
2025-12-07 17:11:28 -05:00
dependabot[bot]
e6bfed33ee
build(deps): bump the npm group across 1 directory with 7 updates
...
Bumps the npm group with 7 updates in the /lib/binding_web directory:
| Package | From | To |
| --- | --- | --- |
| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js ) | `9.36.0` | `9.39.1` |
| [@types/emscripten](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/emscripten ) | `1.41.2` | `1.41.5` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `24.5.2` | `24.10.1` |
| [esbuild](https://github.com/evanw/esbuild ) | `0.25.10` | `0.27.0` |
| [eslint](https://github.com/eslint/eslint ) | `9.36.0` | `9.39.1` |
| [tsx](https://github.com/privatenumber/tsx ) | `4.20.5` | `4.21.0` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ) | `8.44.1` | `8.48.1` |
Updates `@eslint/js` from 9.36.0 to 9.39.1
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/commits/v9.39.1/packages/js )
Updates `@types/emscripten` from 1.41.2 to 1.41.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/emscripten )
Updates `@types/node` from 24.5.2 to 24.10.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `esbuild` from 0.25.10 to 0.27.0
- [Release notes](https://github.com/evanw/esbuild/releases )
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md )
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.10...v0.27.0 )
Updates `eslint` from 9.36.0 to 9.39.1
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v9.36.0...v9.39.1 )
Updates `tsx` from 4.20.5 to 4.21.0
- [Release notes](https://github.com/privatenumber/tsx/releases )
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs )
- [Commits](https://github.com/privatenumber/tsx/compare/v4.20.5...v4.21.0 )
Updates `typescript-eslint` from 8.44.1 to 8.48.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.48.1/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: "@eslint/js"
dependency-version: 9.39.1
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: "@types/emscripten"
dependency-version: 1.41.5
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: "@types/node"
dependency-version: 24.10.1
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: esbuild
dependency-version: 0.27.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: eslint
dependency-version: 9.39.1
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: tsx
dependency-version: 4.21.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.48.1
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-12-06 13:05:02 +01:00
Christian Clason
053b264502
build(deps): cargo update
2025-12-06 12:53:10 +01:00
dependabot[bot]
a8f25fa441
build(deps): bump glob from 10.4.5 to 10.5.0 in /lib/binding_web
...
Bumps [glob](https://github.com/isaacs/node-glob ) from 10.4.5 to 10.5.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md )
- [Commits](https://github.com/isaacs/node-glob/compare/v10.4.5...v10.5.0 )
---
updated-dependencies:
- dependency-name: glob
dependency-version: 10.5.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-12-06 12:21:22 +01:00
dependabot[bot]
f450ce4f6e
build(deps): bump vite from 7.1.5 to 7.1.11 in /lib/binding_web
...
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 7.1.5 to 7.1.11.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v7.1.11/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 7.1.11
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-12-05 23:59:37 -05:00
dependabot[bot]
3ff8edf9e8
build(deps): bump js-yaml from 4.1.0 to 4.1.1 in /crates/cli/eslint
...
Bumps [js-yaml](https://github.com/nodeca/js-yaml ) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1 )
---
updated-dependencies:
- dependency-name: js-yaml
dependency-version: 4.1.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-12-05 22:25:23 -05:00
dependabot[bot]
6b6040961c
build(deps): bump js-yaml from 4.1.0 to 4.1.1 in /lib/binding_web
...
Bumps [js-yaml](https://github.com/nodeca/js-yaml ) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1 )
---
updated-dependencies:
- dependency-name: js-yaml
dependency-version: 4.1.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-12-05 22:24:47 -05:00
Will Lillis
888f57657d
fix(cli): improve error reporting for invalid range arguments to query
...
command
2025-12-03 18:06:16 -05:00
Max Brunsfeld
be8fe690d8
Clean up node range tracking in query_cursor__advance
2025-12-03 18:06:16 -05:00
Piotr Osiewicz
c0b1710f8a
Add containing range APIs to query cursor
...
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: dino <dinojoaocosta@gmail.com>
Co-authored-by: John Tur <john-tur@outlook.com>
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Co-authored-by: dino <dinojoaocosta@gmail.com>
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-12-03 18:06:16 -05:00
Piotr Osiewicz
7d3feeae9a
cli: Do not validate UTF-8 boundaries when query results are not being
...
tested
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Co-authored-by: dino <dinojoaocosta@gmail.com>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: John Tur <john-tur@outlook.com>
2025-12-03 18:06:16 -05:00
dependabot[bot]
3f85f65e3f
build(deps): bump the cargo group with 2 updates
...
Bumps the cargo group with 2 updates: [cc](https://github.com/rust-lang/cc-rs ) and [wasmparser](https://github.com/bytecodealliance/wasm-tools ).
Updates `cc` from 1.2.47 to 1.2.48
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.47...cc-v1.2.48 )
Updates `wasmparser` from 0.241.2 to 0.242.0
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/commits )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.48
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: wasmparser
dependency-version: 0.242.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-12-02 08:10:34 +01:00
WillLillis
df8b62fc50
feat(xtask): bring wasi-sdk treatment up to par with the loader
...
The loader package's `ensure_wasi_sdk_exists` private method checks for
the wasi-sdk, fetching it if it can't be found. This logic was
re-implemented in xtask for `build-wasm-stdlib`, but without the
fetching functionality. We can have nice things in xtask too! Rather
than make this function a public member of `tree-sitter-loader`, we
just re-implement and leave a nice comment asking people to keep the
two in sync.
2025-11-27 16:06:25 -05:00
ObserverOfTime
14b4708018
fix(loader): write Wasm lib directly to lib dir
...
Problem: `fs::rename` fails if the parser directory and the Tree-sitter
library directory are on different file systems.
Solution: Write the library file directly to the final directory.
2025-11-25 17:23:44 +01:00
WillLillis
dcef0cc0ee
fix(cli): correct query match limit warning condition
2025-11-25 17:23:19 +01:00
WillLillis
c1a0f48781
fix(cli): return error if --wasm flag is passed when the wasm feature
...
is disabled
This applies to the `parse` and `test` commands, but not `build` as it
doesn't require the wasm feature. Also, hide the `--wasm` options if
from the `--help` output if the feature is disabled.
2025-11-25 17:23:19 +01:00
Antonin Delpeuch
f6d17fdb04
fix(node): bump tree-sitter dep to 0.25 in bindings
...
Sets the dependency `tree-sitter` to version 0.25 in
the NodeJS bindings generated by default, so that
`npm run test` passes.
2025-11-25 03:32:31 -05:00
Riley Bruins
829733a35e
fix(query): prevent infinite loop with + and ? quantifiers
...
**Problem:** A query with a `?` quantifier followed by a `+` quantifier
would hang at 100% CPU usage while iterating through a tree, regardless
of the source content.
**Solution:** Collect all quantifiers in one step, and then add the
required repeat/optional step logic *after* we have determined the
composite quantifier we need to use for the current step.
2025-11-25 03:21:13 -05:00
Christian Clason
d64b863030
build(deps): bump wasi-sdk to v29
2025-11-25 07:41:04 +01:00
skewb1k
882aa867eb
docs: remove manual bindings update steps for scanner
...
Since 66dab20462 , bindings automatically
detect external scanner, making the instructions for manual updating
outdated. Avoids confusion about missing commented lines in Rust
bindings.
2025-11-24 23:00:40 +01:00
dependabot[bot]
de92a9b4c9
build(deps): bump the cargo group with 4 updates
...
Bumps the cargo group with 4 updates: [cc](https://github.com/rust-lang/cc-rs ), [clap](https://github.com/clap-rs/clap ), [clap_complete](https://github.com/clap-rs/clap ) and [indexmap](https://github.com/indexmap-rs/indexmap ).
Updates `cc` from 1.2.46 to 1.2.47
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.46...cc-v1.2.47 )
Updates `clap` from 4.5.51 to 4.5.53
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.51...clap_complete-v4.5.53 )
Updates `clap_complete` from 4.5.60 to 4.5.61
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.60...clap_complete-v4.5.61 )
Updates `indexmap` from 2.12.0 to 2.12.1
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md )
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.12.0...2.12.1 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.47
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.5.53
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-version: 4.5.61
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: indexmap
dependency-version: 2.12.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 22:42:26 +01:00
dependabot[bot]
5880df47e2
ci: bump actions/checkout from 5 to 6 in the actions group
...
Bumps the actions group with 1 update: [actions/checkout](https://github.com/actions/checkout ).
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v5...v6 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 22:41:27 +01:00
Will Lillis
e92a7803eb
fix(docs): final updates before 0.26.1
...
- Indicate where xtask looks for wasi-sdk
- Indicate where `build --wasm` looks for and downloads wasi-sdk binary
to
- Mark native runtime as experimental, describe limitations
- Note ABI 13 support limitations
- Mention that `test --wasm` and `parse --wasm` require
`--features=wasm` build
2025-11-24 15:18:12 +01:00
Will Lillis
0d656de98b
feat(cli): update zig bindings with version command
2025-11-21 19:40:14 -05:00
Amaan Qureshi
b095968dff
refactor(cli): clean up version updating code
...
This commit adds proper error types when updating the version across
files
2025-11-21 19:40:14 -05:00
Will Lillis
d592b16ac0
fix(docs): list dependencies on external tooling for version command
2025-11-21 19:40:14 -05:00
Will Lillis
320c0865e9
feat(cli): don't bail after first version update fails
2025-11-21 19:40:14 -05:00
ObserverOfTime
60635e0729
fix(generate): add node_modules to quickjs resolver
2025-11-21 19:39:53 -05:00
Antonin Delpeuch
120f74723e
docs: fix typo in the page about ABI version
...
Of course I only catch that once they are already published…
2025-11-20 09:58:07 +01:00
Antonin Delpeuch
02508d5570
Apply suggestions from code review
...
Co-authored-by: Christian Clason <ch.clason+github@icloud.com>
2025-11-20 01:07:58 -05:00
Antonin Delpeuch
42e7e9c3e7
Integrate rewording suggestions
2025-11-20 01:07:58 -05:00
Antonin Delpeuch
55b9a25c84
docs: New page about ABI versions for parser users
...
Closes #374 .
The statement about the intended backwards compatibility is purely
speculative and provided as a "straw man" to help reviewers come up with
a better description of the intended backwards compatibility.
2025-11-20 01:07:58 -05:00
Will Lillis
877782a8a4
fix(docs): update cli docs to reflect changes to various subcommand
...
arguments
2025-11-19 04:30:01 -05:00
Antonin Delpeuch
0e1f715ef1
Move PathsJSON method, reformat
2025-11-19 03:57:13 -05:00
Antonin Delpeuch
f3012a999d
feat(bindings): expose the queries dynamically
...
Available in the Rust, Python, and Node bindings
Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
2025-11-19 03:57:13 -05:00
dependabot[bot]
3072d35ed5
build(deps): bump the cargo group with 2 updates
...
Bumps the cargo group with 2 updates: [cc](https://github.com/rust-lang/cc-rs ) and [wasmparser](https://github.com/bytecodealliance/wasm-tools ).
Updates `cc` from 1.2.45 to 1.2.46
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.45...cc-v1.2.46 )
Updates `wasmparser` from 0.240.0 to 0.241.2
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/commits )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.46
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: wasmparser
dependency-version: 0.241.2
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 22:29:19 +01:00
Valeriy Kosikhin
57e3a7b2ca
fix(loader): set correct runtime host for cc while cross-compiling
...
Pass the BUILD_TARGET variable from the build environment as 'host' for
the cc crate. Otherwise, when cross-compiled, cc will keep looking for a
cross-compiler instead of the native one on the target system.
Signed-off-by: Valeriy Kosikhin <vkosikhin@gmail.com>
2025-11-17 18:19:34 +01:00
Christian Clason
0df2916920
bulild(deps): cargo update
2025-11-14 11:28:00 +01:00
WillLillis
61c21aa408
refactor(generate)!: include path when available in IO errors
2025-11-14 11:28:00 +01:00
WillLillis
7eb23d9f3c
refactor(config)!: transition from anyhow to thiserror
2025-11-14 11:28:00 +01:00
WillLillis
db2d221ae9
fix(generate): remove leftover imports of anyhow
2025-11-14 11:28:00 +01:00
WillLillis
67cb3cb881
refactor(loader)!: transition from anyhow to thiserror
2025-11-14 11:28:00 +01:00
Marcono1234
12a31536e1
fix(docs): don't show mdbook help popup when using query editor
2025-11-12 23:43:03 -05:00
Will Lillis
7657cc9d35
fix(dsl): add ReservedRule to Rule type definition
2025-11-12 07:27:05 +01:00
dependabot[bot]
13ff3935ac
build(deps): bump the cargo group with 3 updates
...
Bumps the cargo group with 3 updates: [cc](https://github.com/rust-lang/cc-rs ), [libloading](https://github.com/nagisa/rust_libloading ) and [schemars](https://github.com/GREsau/schemars ).
Updates `cc` from 1.2.44 to 1.2.45
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.44...cc-v1.2.45 )
Updates `libloading` from 0.8.9 to 0.9.0
- [Commits](https://github.com/nagisa/rust_libloading/compare/0.8.9...0.9.0 )
Updates `schemars` from 1.0.4 to 1.0.5
- [Release notes](https://github.com/GREsau/schemars/releases )
- [Changelog](https://github.com/GREsau/schemars/blob/master/CHANGELOG.md )
- [Commits](https://github.com/GREsau/schemars/compare/v1.0.4...v1.0.5 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.45
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: libloading
dependency-version: 0.9.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: schemars
dependency-version: 1.0.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 23:04:54 +01:00
Will Lillis
361287fb56
fix(cli)!: deprecate --build flag for generate command
2025-11-07 08:51:24 +01:00
dependabot[bot]
13d4db8bb4
build(deps): bump the cargo group across 1 directory with 6 updates
...
Bumps the cargo group with 6 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.43` | `1.2.44` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.50` | `4.5.51` |
| [clap_complete](https://github.com/clap-rs/clap ) | `4.5.59` | `4.5.60` |
| [clap_complete_nushell](https://github.com/clap-rs/clap ) | `4.5.9` | `4.5.10` |
| [etcetera](https://github.com/lunacookies/etcetera ) | `0.10.0` | `0.11.0` |
| [wasmparser](https://github.com/bytecodealliance/wasm-tools ) | `0.229.0` | `0.240.0` |
Updates `cc` from 1.2.43 to 1.2.44
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.43...cc-v1.2.44 )
Updates `clap` from 4.5.50 to 4.5.51
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.50...clap_complete-v4.5.51 )
Updates `clap_complete` from 4.5.59 to 4.5.60
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.59...clap_complete-v4.5.60 )
Updates `clap_complete_nushell` from 4.5.9 to 4.5.10
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete_nushell-v4.5.9...clap_complete_nushell-v4.5.10 )
Updates `etcetera` from 0.10.0 to 0.11.0
- [Release notes](https://github.com/lunacookies/etcetera/releases )
- [Commits](https://github.com/lunacookies/etcetera/compare/v0.10.0...v0.11.0 )
Updates `wasmparser` from 0.229.0 to 0.240.0
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/commits )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.44
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.5.51
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-version: 4.5.60
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete_nushell
dependency-version: 4.5.10
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: etcetera
dependency-version: 0.11.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: wasmparser
dependency-version: 0.240.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-11-04 16:08:54 +01:00
Will Lillis
419a5a7305
fix(generate): don't short-circuit within extend_sorted
2025-11-03 01:22:29 -05:00
Will Lillis
c7b5f89392
feat(xtask): generate JSON schema for cli TestSummary
2025-11-02 21:08:55 -05:00
Will Lillis
d546e28abf
fix(cli): mark report_states_for_rule and json/json_summary flags
...
for `generate` command as conflicting
2025-11-02 21:08:55 -05:00
WillLillis
86e2fd2337
fix(cli): correct behavior of parse --stat and --json-summary flags
2025-11-02 21:08:55 -05:00
WillLillis
ff255a2354
test: add coverage for new test aggregation method
2025-11-02 21:08:55 -05:00
WillLillis
fe67521b3d
refactor(cli)!: deprecate json flags in favor of json-summary
2025-11-02 21:08:55 -05:00
WillLillis
f02d7e7e33
feat(test): display test results in JSON format
2025-11-02 21:08:55 -05:00
WillLillis
6a8676f335
refactor(test): generalize printing of test diff keys and diffs
2025-11-02 21:08:55 -05:00
WillLillis
944386d25f
refactor(test): clean up test filtering logic
...
Also, only update the expected output of a case when it is skipped if
the `update` flag has been passed
2025-11-02 21:08:55 -05:00
Will Lillis
ef03a3f8fe
fix(ci): correct mdbook release url
2025-11-02 18:37:09 -05:00
Christian Clason
18a5243933
ci(docs): pin mdbook to latest release
2025-11-02 18:07:47 -05:00
Christian Clason
8444cc3deb
fix(docs): remove multilingual config field
...
Problem: "deploy docs" always pulls in the `latest` release of `mdbook`,
which now is a v0.5.0 prerelease with breaking changes -- including
removing an (apparently unused) `multilingual` config field in the TOML
that is now an error (another breaking change).
Solution: Delete the line. Add `workflow_dispatch` to the docs workflow
in case follow-up changes are needed; see
https://github.com/rust-lang/mdBook/blob/master/CHANGELOG.md#05-migration-guide
2025-11-02 18:07:47 -05:00
Will Lillis
097c2d4f05
fix(cli): remove --emit=lib generate option
...
This also replaces the `--emit` option with an `--no-parser` flag. The
default value is false, meaning a parser is still generated by default.
2025-11-02 10:26:28 +01:00
WillLillis
b8f52210f9
perf: reduce needless allocations
2025-10-30 18:24:42 +01:00
WillLillis
ecc787e221
fix(test): correct language typo in test name
2025-10-30 18:24:42 +01:00
Christian Clason
6188010f53
build(deps): bump rquickjs to v0.10.0
2025-10-29 18:30:25 -04:00
Christian Clason
70cde4a110
ci(dependabot): only update patch releases for cargo
2025-10-29 18:30:25 -04:00
Christian Clason
77363a65c2
build(deps): cargo update
2025-10-29 18:30:25 -04:00
dependabot[bot]
605e580063
ci: bump the actions group across 1 directory with 3 updates
...
Bumps the actions group with 3 updates in the / directory: [actions/upload-artifact](https://github.com/actions/upload-artifact ), [actions/download-artifact](https://github.com/actions/download-artifact ) and [actions/setup-node](https://github.com/actions/setup-node ).
Updates `actions/upload-artifact` from 4 to 5
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5 )
Updates `actions/download-artifact` from 5 to 6
- [Release notes](https://github.com/actions/download-artifact/releases )
- [Commits](https://github.com/actions/download-artifact/compare/v5...v6 )
Updates `actions/setup-node` from 5 to 6
- [Release notes](https://github.com/actions/setup-node/releases )
- [Commits](https://github.com/actions/setup-node/compare/v5...v6 )
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/download-artifact
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/setup-node
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-10-28 09:23:50 +01:00
WillLillis
a2f2b16acb
fix(xtask): require version argument for bump-version command
2025-10-24 18:13:59 -04:00
Will Lillis
87d778a1c6
fix(rust): apply Self usage in struct definition lint
2025-10-24 17:50:28 -04:00
Will Lillis
e344837e35
fix(rust): minor cleanup in generate code
2025-10-24 17:50:28 -04:00
ObserverOfTime
bdee2c2dd3
ci: use macos-15-intel runner
...
The macos-13 runner will soon be removed.
2025-10-24 10:14:52 +02:00
dependabot[bot]
da5926d6f5
build(deps): bump the cargo group across 1 directory with 4 updates
...
Bumps the cargo group with 4 updates in the / directory: [anstyle](https://github.com/rust-cli/anstyle ), [cc](https://github.com/rust-lang/cc-rs ), [thiserror](https://github.com/dtolnay/thiserror ) and [widestring](https://github.com/VoidStarKat/widestring-rs ).
Updates `anstyle` from 1.0.11 to 1.0.13
- [Commits](https://github.com/rust-cli/anstyle/compare/v1.0.11...v1.0.13 )
Updates `cc` from 1.2.39 to 1.2.41
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.39...cc-v1.2.41 )
Updates `thiserror` from 2.0.16 to 2.0.17
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/2.0.16...2.0.17 )
Updates `widestring` from 1.2.0 to 1.2.1
- [Release notes](https://github.com/VoidStarKat/widestring-rs/releases )
- [Changelog](https://github.com/VoidStarKat/widestring-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/VoidStarKat/widestring-rs/compare/v1.2.0...v1.2.1 )
---
updated-dependencies:
- dependency-name: anstyle
dependency-version: 1.0.13
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: cc
dependency-version: 1.2.41
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: thiserror
dependency-version: 2.0.17
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: widestring
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-10-14 11:00:03 +02:00
Will Lillis
b3bc7701cd
refactor(generate): make AliasMap use BTreeMap over HashMap
2025-10-12 15:56:30 -04:00
Will Lillis
262f1782cc
fix(generate): ensure deterministic iteration order for symbol aliases
...
while constructing node-types.json
2025-10-12 15:56:30 -04:00
WillLillis
00d172bf9f
fix(generate): correct display of precedence for
...
`--report-states-for-rule`
2025-10-12 15:56:12 -04:00
Will Lillis
ae54350c76
fix(generate): Add missing fields to NodeInfoJson sorting
...
This ensures a deterministic ordering for node-types.json
2025-10-11 14:25:52 -04:00
Will Lillis
3355825a68
fix(cli): don't load languages for build command
2025-10-07 17:21:09 -04:00
ObserverOfTime
7d0e029e37
chore: add schema for node-types.json
2025-10-05 09:57:23 +03:00
Mihai-Daniel Potirniche
0f5ccc4aba
Fix typo
2025-10-04 12:12:39 -04:00
ObserverOfTime
0cf6e7c507
fix(cli): prevent crash when parsing stdin
...
When we are parsing stdin via a pipe or heredoc, the source count is 0
(unsigned) so the XML output crashes while trying to subtract from it.
2025-10-03 19:24:58 +03:00
dependabot[bot]
1dc4804b6e
build(deps): bump the cargo group with 2 updates
...
Bumps the cargo group with 2 updates: [memchr](https://github.com/BurntSushi/memchr ) and [regex](https://github.com/rust-lang/regex ).
Updates `memchr` from 2.7.5 to 2.7.6
- [Commits](https://github.com/BurntSushi/memchr/compare/2.7.5...2.7.6 )
Updates `regex` from 1.11.2 to 1.11.3
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.11.2...1.11.3 )
---
updated-dependencies:
- dependency-name: memchr
dependency-version: 2.7.6
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: regex
dependency-version: 1.11.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 02:57:21 -04:00
Amaan Qureshi
c5b22a1dc6
ci: split cross compilation and emscripten tag read
2025-10-01 02:57:04 -04:00
Amaan Qureshi
92efd26380
fix(loader): allow parallel compilation on windows
2025-10-01 02:57:04 -04:00
Amaan Qureshi
24c8feba3e
fix(bindings): fix root detection on windows
2025-09-28 08:40:02 -04:00
Amaan Qureshi
122493b717
style(cli): appease clippy
2025-09-28 05:54:28 -04:00
Amaan Qureshi
4edcca9850
style(loader): appease clippy
2025-09-28 05:54:28 -04:00
dependabot[bot]
be0c44f871
build(deps): bump the cargo group with 7 updates
...
Bumps the cargo group with 7 updates:
| Package | From | To |
| --- | --- | --- |
| [anyhow](https://github.com/dtolnay/anyhow ) | `1.0.99` | `1.0.100` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.37` | `1.2.39` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.47` | `4.5.48` |
| [clap_complete](https://github.com/clap-rs/clap ) | `4.5.57` | `4.5.58` |
| [indexmap](https://github.com/indexmap-rs/indexmap ) | `2.11.1` | `2.11.4` |
| [libloading](https://github.com/nagisa/rust_libloading ) | `0.8.8` | `0.8.9` |
| [tempfile](https://github.com/Stebalien/tempfile ) | `3.22.0` | `3.23.0` |
Updates `anyhow` from 1.0.99 to 1.0.100
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.99...1.0.100 )
Updates `cc` from 1.2.37 to 1.2.39
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.37...cc-v1.2.39 )
Updates `clap` from 4.5.47 to 4.5.48
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.47...clap_complete-v4.5.48 )
Updates `clap_complete` from 4.5.57 to 4.5.58
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.57...clap_complete-v4.5.58 )
Updates `indexmap` from 2.11.1 to 2.11.4
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md )
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.11.1...2.11.4 )
Updates `libloading` from 0.8.8 to 0.8.9
- [Commits](https://github.com/nagisa/rust_libloading/compare/0.8.8...0.8.9 )
Updates `tempfile` from 3.22.0 to 3.23.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.22.0...v3.23.0 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-version: 1.0.100
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: cc
dependency-version: 1.2.39
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.5.48
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-version: 4.5.58
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: indexmap
dependency-version: 2.11.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: libloading
dependency-version: 0.8.9
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: tempfile
dependency-version: 3.23.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-28 05:54:28 -04:00
ObserverOfTime
35b1356e96
ci(dependabot): update package.json as well
2025-09-28 04:15:36 -04:00
ObserverOfTime
443acf080a
ci(dependabot): enable cooldown period
...
This setting will delay package updates by 3 days which generally
should be enough time for supply chain attacks to be discovered
2025-09-28 03:58:23 -04:00
Amaan Qureshi
00e394f0f1
feat(lib)!: disallow whitespace in supertype syntax
2025-09-28 00:56:30 -04:00
Amaan Qureshi
341665824c
fix(lib): validate subtypes in supertype queries
2025-09-28 00:56:30 -04:00
Amaan Qureshi
bd02be25d5
fix(lib): allow anonymous nodes in the supertype query syntax
2025-09-28 00:56:30 -04:00
WillLillis
12a6400c63
fix(test): trim trailing carriage return unconditionally in test
...
contents
2025-09-27 19:28:03 -04:00
ObserverOfTime
d86e1b4f5e
feat(bindings): generate zig fingerprint
2025-09-26 18:02:35 -04:00
WillLillis
422866a437
fix(docs): update more broken links
2025-09-26 16:10:29 -05:00
Amaan Qureshi
5f7806f99e
feat: add option to disable parse state optimizations
2025-09-26 02:40:53 -04:00
WillLillis
a9bce7c18a
fix(generate): return error when generated grammar's state count exceeds
...
the maximum allowed value.
Co-authored-by: Amaan Qureshi <git@amaanq.com>
2025-09-25 22:29:04 -05:00
WillLillis
335bfabc60
feat(cli): include filenames in parsing xml output
2025-09-25 22:28:31 -05:00
Amaan Qureshi
e1b424c191
Revert "0.26.0"
2025-09-24 16:42:01 -04:00
Amaan Qureshi
ea9c318afb
docs: update highlight crate link
2025-09-24 16:29:08 -04:00
ObserverOfTime
9d66dbc28f
chore: remove CARGO_WORKSPACE_DIR var
2025-09-24 16:14:08 -04:00
Riley Bruins
8c22426223
feat(rust): add new_raw to create a raw, unchecked query pointer
2025-09-23 19:06:22 -04:00
Amaan Qureshi
90ee433c9b
fix(lib): account for unreachable patterns with children
...
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-09-23 17:17:45 -04:00
Amaan Qureshi
f26bd44a43
flake: remove cross, add llvm-cov support
2025-09-23 01:19:14 -04:00
Amaan Qureshi
021d9c447d
test: clean up async boundary test
2025-09-23 01:19:14 -04:00
Amaan Qureshi
ce56465197
test(rust): prefer asserts to panics
2025-09-23 01:19:14 -04:00
Amaan Qureshi
b0cdab85fe
refactor(rust): avoid panics where possible
2025-09-23 01:19:14 -04:00
Amaan Qureshi
47c9256976
test: clean up parser hang test
2025-09-23 01:19:14 -04:00
dependabot[bot]
cf89840460
build(deps): bump the npm group across 1 directory with 6 updates
...
Bumps the npm group with 6 updates in the /lib/binding_web directory:
| Package | From | To |
| --- | --- | --- |
| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js ) | `9.35.0` | `9.36.0` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `24.5.0` | `24.5.2` |
| [esbuild](https://github.com/evanw/esbuild ) | `0.25.9` | `0.25.10` |
| [eslint](https://github.com/eslint/eslint ) | `9.35.0` | `9.36.0` |
| [typescript](https://github.com/microsoft/TypeScript ) | `5.8.3` | `5.9.2` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ) | `8.44.0` | `8.44.1` |
Updates `@eslint/js` from 9.35.0 to 9.36.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/commits/v9.36.0/packages/js )
Updates `@types/node` from 24.5.0 to 24.5.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `esbuild` from 0.25.9 to 0.25.10
- [Release notes](https://github.com/evanw/esbuild/releases )
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md )
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.9...v0.25.10 )
Updates `eslint` from 9.35.0 to 9.36.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/compare/v9.35.0...v9.36.0 )
Updates `typescript` from 5.8.3 to 5.9.2
- [Release notes](https://github.com/microsoft/TypeScript/releases )
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml )
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2 )
Updates `typescript-eslint` from 8.44.0 to 8.44.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.44.1/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: "@eslint/js"
dependency-version: 9.36.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: "@types/node"
dependency-version: 24.5.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: esbuild
dependency-version: 0.25.10
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: eslint
dependency-version: 9.36.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: typescript
dependency-version: 5.9.2
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.44.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-22 21:49:46 -04:00
Max Brunsfeld
e3294c3faf
build: bump tree-sitter-language to 0.1.5
2025-09-22 15:54:15 -04:00
Amaan Qureshi
95ab17e444
build: define _DARWIN_C_SOURCE
2025-09-22 19:50:43 +03:00
Max Brunsfeld
9b914885f1
Fix issues preventing releases from successfully publishing ( #4867 )
...
* Correct the path to the CLI npm package in release job
* Specify a version for tree-sitter-language
* Fix path to README in doc include
2025-09-22 09:24:30 -07:00
WillLillis
92678f0fc5
fix(rust): pass correct fd to C lib's ts_tree_print_dot_graph
...
Co-authored-by: Amaan Qureshi <git@amaanq.com>
2025-09-21 18:21:57 -04:00
ObserverOfTime
a1640e4fe4
chore: rebuild wasm stdlib
2025-09-21 16:28:08 -04:00
ObserverOfTime
1be51c2129
chore: upgrade emscripten to 4.0.15
2025-09-21 16:28:08 -04:00
Will Lillis
6214f95e7e
docs: correct new generate flag: "stage"->"emit"
2025-09-21 15:22:11 -04:00
Amaan Qureshi
c89e40f008
fix(generate): fix builds outside of crate workspace
2025-09-21 02:34:10 -04:00
Antonin Delpeuch
8873c1aeff
docs: update options for generate command
2025-09-21 01:53:40 -04:00
Amaan Qureshi
d543e2e50b
refactor(loader): use the logger
2025-09-21 01:53:22 -04:00
Amaan Qureshi
e5c11d9efc
refactor(config): use the logger
2025-09-21 01:53:22 -04:00
ObserverOfTime
d13657c40c
refactor(generate): use the logger
...
Co-authored-by: Amaan Qureshi <git@amaanq.com>
2025-09-21 01:53:22 -04:00
ObserverOfTime
804ef22075
refactor(cli): use the logger
...
Co-authored-by: Amaan Qureshi <git@amaanq.com>
2025-09-21 01:53:22 -04:00
Amaan Qureshi
fa28b430af
feat(bindings): update Zig bindings to use Language.fromRaw
2025-09-21 01:42:26 -04:00
Amaan Qureshi
311585d304
refactor!: rename stage flag to emit
2025-09-20 22:35:23 -04:00
ObserverOfTime
60c3bed6a4
fix(loader): install arm64 wasi-sdk on arm64 windows
2025-09-20 18:11:48 -04:00
ObserverOfTime
6dfa79013f
feat(loader): respect NM env var
2025-09-20 18:08:07 -04:00
ObserverOfTime
79ef484392
ci: cross-compile without cross-rs
2025-09-20 18:08:07 -04:00
Amaan Qureshi
0ca8fe8c12
feat(playground): add export flag
2025-09-19 17:55:28 -04:00
John-Philip Taylor
552ab537e8
docs(cli): add docs on new version features
2025-09-19 17:52:08 -04:00
Amaan Qureshi
0cf217179c
feat(rust): add reborrow method to ParseOptions
2025-09-19 17:40:35 -04:00
Amaan Qureshi
48a5077035
feat(web)!: add API for editing points and ranges
2025-09-19 17:40:26 -04:00
Amaan Qureshi
a69367f739
feat: add API for editing points and ranges
2025-09-19 17:40:26 -04:00
Will Lillis
1a0868c487
build: add static and shared targets to Makefile
2025-09-19 17:06:27 -04:00
Max Brunsfeld
9be3e2bdd8
0.26.0
2025-09-19 08:14:00 -07:00
Amaan Qureshi
074e991280
refactor: deduplicate allocation code in tests
2025-09-18 20:29:54 -04:00
Nia
f09dc3cf46
fix(wasm): fix alias map size computation
...
This fixes a crash where parsing with certain languages can lead to a crash due to how the alias map was allocated and laid out in wasm memory
2025-09-18 18:34:27 -04:00
ObserverOfTime
f222db57ce
fix(bindings): fix ESM errors in Node bindings
...
1. The module tries to call the native binary as a function.
Only `node-gyp-build` returns a function, so the call is moved there.
2. `node-types.json` is imported with outdated syntax.
Use import attributes which require Node 18.
3. The test does not properly catch import errors.
This is solved by moving the import inside the assertion.
2025-09-18 16:59:34 -04:00
Amaan Qureshi
d29132512b
ci: build wasm32
2025-09-17 04:57:49 -04:00
Amaan Qureshi
22553b3372
feat: support compiling to wasm32-unknown-unknown
2025-09-17 04:57:49 -04:00
Will Lillis
46ea65c89b
refactor: remove url dependency
2025-09-17 04:31:53 -04:00
Will Lillis
6a28a62369
test: add safety checks to ensure langauge version constants are kept in
...
sync
The generate crate defines the `LANGUAGE_VERSION` constant separately
from the TREE_SITTER_LANGUAGE_VERSION definition in `api.h`.
2025-09-17 02:58:31 -04:00
Amaan Qureshi
db0d05fab3
ci: fix cache paths
2025-09-17 02:19:29 -04:00
Amaan Qureshi
317e2e74c2
Revert "feat(generate): allow more characters for keywords"
...
This reverts commit 0269357c5a .
2025-09-17 02:19:29 -04:00
Amaan Qureshi
04cfee5664
build(rust): remove unused dependencies
2025-09-16 18:57:06 -04:00
Amaan Qureshi
57c6105897
fix(generate): remove warning message for CJS grammars
2025-09-16 16:42:17 -04:00
Christian Clason
339bad2de4
feat(generate): don't embed tree-sitter CLI version in parser
...
Problem: embedding the CLI version used to generate a parser triggers CI
failures on all grammars for every (patch) release of tree-sitter, even
if there are no actual parser changes.
Solution: do not embed the version; instead rely on whether the update
introduces actual (presumably desirable) changes in the parser to
indicate regeneration is necessary.
2025-09-16 19:21:34 +02:00
Will Lillis
31ff62445b
fix(generate): assert there is a Nfa last state before retrieving it
...
Prevents unsigned subtraction wrapping antics in release builds
2025-09-16 03:51:13 -04:00
Will Lillis
c54bc441ba
fix(test): include failing test's path in error message
...
This helps when an empty folder was left behind in the corpus directory
2025-09-16 03:51:13 -04:00
Will Lillis
070b91628f
fix(rust): appease clippy
2025-09-16 03:51:13 -04:00
bbb651
9593737871
build(generate): remove tree-sitter dependency
...
It was only used to share two constants, and balloons its dependencies.
This also makes `generate_parser_for_grammar` work in wasm.
(Tested in `wasm32-wasip2` in wasmtime with the json grammar,
`wasm32-unknown-unknown` running in the same setup exited successfully
so I'm pretty confident it works as well)
Co-authored-by: Amaan Qureshi <contact@amaanq.com>
2025-09-16 03:48:30 -04:00
Amaan Qureshi
0269357c5a
feat(generate): allow more characters for keywords
2025-09-16 03:01:56 -04:00
Amaan Qureshi
fd68c02072
fix(init): add missing quote in replacement
2025-09-16 02:24:11 -04:00
Amaan Qureshi
39a67eec61
feat: migrate to ESM
2025-09-16 02:24:11 -04:00
Amaan Qureshi
67f50b85f5
docs: document the native js runtime
2025-09-16 02:24:11 -04:00
Amaan Qureshi
eedbec8f24
feat: remove the need of an external JS runtime for processing grammars
2025-09-16 02:24:11 -04:00
dependabot[bot]
7ba7c4a8ce
build(deps): bump the cargo group with 7 updates
...
Bumps the cargo group with 7 updates:
| Package | From | To |
| --- | --- | --- |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.36` | `1.2.37` |
| [indexmap](https://github.com/indexmap-rs/indexmap ) | `2.11.0` | `2.11.1` |
| [semver](https://github.com/dtolnay/semver ) | `1.0.26` | `1.0.27` |
| [serde](https://github.com/serde-rs/serde ) | `1.0.219` | `1.0.224` |
| [serde_derive](https://github.com/serde-rs/serde ) | `1.0.219` | `1.0.224` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.143` | `1.0.145` |
| [tempfile](https://github.com/Stebalien/tempfile ) | `3.21.0` | `3.22.0` |
Updates `cc` from 1.2.36 to 1.2.37
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.36...cc-v1.2.37 )
Updates `indexmap` from 2.11.0 to 2.11.1
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md )
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.11.0...2.11.1 )
Updates `semver` from 1.0.26 to 1.0.27
- [Release notes](https://github.com/dtolnay/semver/releases )
- [Commits](https://github.com/dtolnay/semver/compare/1.0.26...1.0.27 )
Updates `serde` from 1.0.219 to 1.0.224
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.219...v1.0.224 )
Updates `serde_derive` from 1.0.219 to 1.0.224
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.219...v1.0.224 )
Updates `serde_json` from 1.0.143 to 1.0.145
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.143...v1.0.145 )
Updates `tempfile` from 3.21.0 to 3.22.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.21.0...v3.22.0 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.37
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: indexmap
dependency-version: 2.11.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: semver
dependency-version: 1.0.27
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde
dependency-version: 1.0.224
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_derive
dependency-version: 1.0.224
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_json
dependency-version: 1.0.145
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: tempfile
dependency-version: 3.22.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 19:32:27 -04:00
dependabot[bot]
b6f45b0a2e
build(deps): bump the npm group across 1 directory with 4 updates
...
Bumps the npm group with 4 updates in the /lib/binding_web directory: [@types/emscripten](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/emscripten ), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ), [typescript](https://github.com/microsoft/TypeScript ) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ).
Updates `@types/emscripten` from 1.41.1 to 1.41.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/emscripten )
Updates `@types/node` from 24.3.1 to 24.5.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `typescript` from 5.8.3 to 5.9.2
- [Release notes](https://github.com/microsoft/TypeScript/releases )
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml )
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2 )
Updates `typescript-eslint` from 8.43.0 to 8.44.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.44.0/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: "@types/emscripten"
dependency-version: 1.41.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: "@types/node"
dependency-version: 24.5.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: typescript
dependency-version: 5.9.2
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.44.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 19:32:20 -04:00
ObserverOfTime
3d26b8e500
feat(bindings): use CapsuleType in Python stub
2025-09-14 19:00:25 -04:00
Amaan Qureshi
46f7f860e6
docs: correct explanation about @ignore capture
2025-09-14 16:45:39 -04:00
Amaan Qureshi
2ae677162f
docs: clarify that only the whitespace character class is simplfied
2025-09-14 16:45:39 -04:00
Amaan Qureshi
4dbfb5b49a
docs: document the @ignore capture in tags
2025-09-14 06:27:27 -04:00
Amaan Qureshi
3a911d578c
docs: add more information on supertype nodes for grammars and queries
2025-09-14 06:25:35 -04:00
Amaan Qureshi
63f48afaeb
docs: explain extras in a bit more detail
2025-09-14 06:02:00 -04:00
Will Lillis
ac39aed7c5
fix(lib/wasm): return NULL for 0-sized allocations
...
Co-authored-by: Amaan Qureshi <contact@amaanq.com>
2025-09-13 22:29:47 -04:00
Amaan Qureshi
c4d02a5254
build(lib): regenerate wasm stdlib
...
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-09-13 22:29:47 -04:00
Amaan Qureshi
69c42450c3
fix(lib/wasm): keep track of freed blocks that are not the last allocated pointer
...
This fixes issues where the scanner allocates and frees a lot of data
during a single parse.
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-09-13 22:29:47 -04:00
Amaan Qureshi
b863b16454
fix(xtask): make building the wasm stdlib work again
...
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-09-13 22:29:47 -04:00
Will Lillis
0c35511aea
fix(lib): improve wasm scanner serialization error handling
...
Co-authored-by: Amaan Qureshi <contact@amaanq.com>
2025-09-13 22:29:47 -04:00
Amaan Qureshi
06741d0d5d
fix(playground): check that languageVersion exists for compat
2025-09-13 22:12:11 -04:00
RedCMD
ca8b944b53
build(web): fix cjs build
2025-09-13 05:51:42 -04:00
Amaan Qureshi
580cd9541a
feat(web)!: remove deprecated functions
2025-09-12 02:50:30 -04:00
Amaan Qureshi
d60ef9ad0a
feat(rust)!: remove deprecated functions
2025-09-12 02:50:30 -04:00
Amaan Qureshi
821cf797f2
feat(lib)!: remove deprecated functions
2025-09-12 02:50:30 -04:00
Amaan Qureshi
917895e6a3
build(nix): build cli with all features
2025-09-11 19:33:52 -04:00
Antonin Delpeuch
6e53dcc8e1
fix(playground): add missing <html> tag
2025-09-11 17:06:34 -04:00
ObserverOfTime
56325d2a3b
chore: copy license to all packages
2025-09-11 03:12:35 -04:00
kilo52
d1160cb820
build(cmake)!: move CMakeLists.txt to the source root
2025-09-11 01:59:37 -04:00
kilo52
5528cfee17
build(cmake): change include directory scope to public
...
When a project adds tree-sitter as a dependency via the CMake
FetchContent machinery, the project fails to build because the
tree-sitter header cannot be found. This is because the include
directory is specified with the private scope instead of public.
2025-09-11 01:59:37 -04:00
Daniel Müller
937dcf5fd1
feat(rust)!: use ops::ControlFlow as parse and query progress return value
...
Instead of returning an undocumented boolean flag, use a
core::ops::ControlFlow object. At the expense of being a bit more
verbose, this is a type that should be self-explanatory in the context
of a callback, as an indication of whether to continue processing or
stop.
2025-09-11 01:59:21 -04:00
dependabot[bot]
57e2f41f42
build(deps): bump vite from 7.1.3 to 7.1.5 in /lib/binding_web
...
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 7.1.3 to 7.1.5.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v7.1.5/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 7.1.5
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 23:27:36 -04:00
Amaan Qureshi
3c1f02a7f9
docs(playground): show toast when tree is copied
2025-09-09 03:13:35 -04:00
Amaan Qureshi
907c7bc80b
docs(playground): add version information in playground
...
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-09-09 03:13:35 -04:00
Amaan Qureshi
40a8678989
refactor(xtask): don't use docker to run wasi-sdk's clang
...
This now relies on TREE_SITTER_WASI_SDK_PATH being set
2025-09-09 03:13:35 -04:00
Amaan Qureshi
6451d2f65d
fix(web): correct metadata function
2025-09-09 03:13:35 -04:00
faukah
e4e643086b
refactor: rework nix flake
...
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2025-09-09 03:03:35 -04:00
Amaan Qureshi
e9e4316569
feat(xtask): update nix
2025-09-09 04:45:57 +02:00
Amaan Qureshi
0719bd6ffb
feat(xtask): bump versions in package-lock.json
2025-09-09 04:45:57 +02:00
Amaan Qureshi
8d6d19de1b
build: add package-lock.json for npm cli package
2025-09-09 04:45:57 +02:00
dependabot[bot]
16502e19dd
build(deps): bump the npm group across 1 directory with 6 updates
...
Bumps the npm group with 6 updates in the /lib/binding_web directory:
| Package | From | To |
| --- | --- | --- |
| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js ) | `9.34.0` | `9.35.0` |
| [@types/emscripten](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/emscripten ) | `1.40.0` | `1.41.1` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `24.3.0` | `24.3.1` |
| [eslint](https://github.com/eslint/eslint ) | `9.34.0` | `9.35.0` |
| [typescript](https://github.com/microsoft/TypeScript ) | `5.8.3` | `5.9.2` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ) | `8.41.0` | `8.43.0` |
Updates `@eslint/js` from 9.34.0 to 9.35.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/commits/v9.35.0/packages/js )
Updates `@types/emscripten` from 1.40.0 to 1.41.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/emscripten )
Updates `@types/node` from 24.3.0 to 24.3.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `eslint` from 9.34.0 to 9.35.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/compare/v9.34.0...v9.35.0 )
Updates `typescript` from 5.8.3 to 5.9.2
- [Release notes](https://github.com/microsoft/TypeScript/releases )
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml )
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2 )
Updates `typescript-eslint` from 8.41.0 to 8.43.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.43.0/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: "@eslint/js"
dependency-version: 9.35.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: "@types/emscripten"
dependency-version: 1.41.1
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: "@types/node"
dependency-version: 24.3.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: eslint
dependency-version: 9.35.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: typescript
dependency-version: 5.9.2
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.43.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-09 04:33:49 +02:00
dependabot[bot]
6b2ed39df6
ci: bump the actions group with 2 updates
...
Bumps the actions group with 2 updates: [actions/setup-node](https://github.com/actions/setup-node ) and [actions/github-script](https://github.com/actions/github-script ).
Updates `actions/setup-node` from 4 to 5
- [Release notes](https://github.com/actions/setup-node/releases )
- [Commits](https://github.com/actions/setup-node/compare/v4...v5 )
Updates `actions/github-script` from 7 to 8
- [Release notes](https://github.com/actions/github-script/releases )
- [Commits](https://github.com/actions/github-script/compare/v7...v8 )
---
updated-dependencies:
- dependency-name: actions/setup-node
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/github-script
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-09 04:33:22 +02:00
dependabot[bot]
d517af4c1a
build(deps): bump the cargo group with 3 updates
...
Bumps the cargo group with 3 updates: [cc](https://github.com/rust-lang/cc-rs ), [ctrlc](https://github.com/Detegr/rust-ctrlc ) and [log](https://github.com/rust-lang/log ).
Updates `cc` from 1.2.35 to 1.2.36
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.35...cc-v1.2.36 )
Updates `ctrlc` from 3.4.7 to 3.5.0
- [Release notes](https://github.com/Detegr/rust-ctrlc/releases )
- [Commits](https://github.com/Detegr/rust-ctrlc/commits )
Updates `log` from 0.4.27 to 0.4.28
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.27...0.4.28 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.36
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: ctrlc
dependency-version: 3.5.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: log
dependency-version: 0.4.28
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-09 04:33:02 +02:00
Shadaj Laddad
27e5147a5f
feat(generate): place file APIs behind a feature flag
2025-09-07 11:44:09 +03:00
Amaan Qureshi
e659dddad1
build(nix): add cross and typescript to dev shell
2025-09-04 05:00:14 -04:00
Amaan Qureshi
643f532a70
chore: update flake
2025-09-04 05:00:14 -04:00
Amaan Qureshi
86d86628cb
build(nix): use fenix for rust toolchain
...
This plays more nicely with cross for local testing
2025-09-04 05:00:14 -04:00
Amaan Qureshi
17854168d9
feat(nix): add cross compilation support
2025-09-04 05:00:14 -04:00
Amaan Qureshi
d287acfcc0
refactor(nix): remove openssl dependency
2025-09-04 05:00:14 -04:00
Amaan Qureshi
595299a3c2
ci: remove separate step for generate fixtures
2025-09-04 04:22:32 -04:00
Amaan Qureshi
3eabba637c
fix(xtask): run all tests with the --all flag
2025-09-04 04:22:32 -04:00
Amaan Qureshi
cd12e66e67
fix(lib): don't run code snippet as a doctest
2025-09-04 04:22:32 -04:00
Amaan Qureshi
1d0ebd1065
fix(rust): do not interpret readme doc comments as doc tests
2025-09-04 04:22:32 -04:00
Will Lillis
5fd818babe
fix(generate): use correct state id when adding terminal states to
...
non terminal extras
2025-09-04 04:15:51 -04:00
Amaan Qureshi
968d39328d
ci: switch to arm runner
2025-09-04 01:47:26 -04:00
Will Lillis
310c0b86a7
fix(generate): return error when single state transitions have
...
indirectly recursive cycles.
This can cause infinite loops in the parser near EOF.
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2025-09-04 00:59:44 -04:00
Will Lillis
cc5463ad44
fix(test): improve readability of corpus error message mismatch
2025-09-04 00:59:44 -04:00
Amaan Qureshi
f95a52df4a
fix(xtask): reset fixtures when checking out new version
2025-09-04 00:59:01 -04:00
Amaan Qureshi
3b0273fc61
build: bump emscripten to 4.0.12
2025-09-04 00:59:01 -04:00
Amaan Qureshi
6cb9486b28
test(fixtures): bump javascript grammar to 0.25.0
2025-09-04 00:59:01 -04:00
Amaan Qureshi
f44cbd407f
perf(xtask); check out the tag directly for fixtures
2025-09-03 02:43:32 -04:00
Amaan Qureshi
0b836b2de0
ci: use armv7hf
2025-09-02 16:07:37 -04:00
Amaan Qureshi
151130a5df
ci: pass in matrix target to xtask commands
2025-09-02 16:07:37 -04:00
Amaan Qureshi
4559ec51f7
fix(loader): correct logic when downloading wasi-sdk
2025-09-02 16:07:37 -04:00
Amaan Qureshi
5cd6e747a0
refactor(xtask): use the git binary to perform git operations
2025-09-02 16:07:37 -04:00
Amaan Qureshi
5263cd0706
refactor(loader): use the tar binary to extract the wasi sdk
2025-09-02 16:07:37 -04:00
Amaan Qureshi
4535ea6aaa
refactor(loader): use the curl binary instead of ureq to download wasi-sdk
2025-09-02 16:07:37 -04:00
ObserverOfTime
6e8ad7e5cc
fix(xtask): update paths in bump-version
...
and remove the toml dependency
2025-09-02 14:22:01 -04:00
Amaan Qureshi
22d658518b
feat(loader): allow specifying the wasi sdk path
2025-09-01 23:14:20 -04:00
Amaan Qureshi
f0cfaffd5e
build(web): mark @types/emscripten as a dev dep
2025-09-01 23:14:20 -04:00
Amaan Qureshi
94996b26e5
refactor(web): clean up preserving sourcemap logic, don't copy lib files
2025-09-01 23:14:20 -04:00
Amaan Qureshi
f2e71ec95c
fix(xtask): restore stripped sourcesContent when building the wasm module
2025-09-01 23:14:20 -04:00
Amaan Qureshi
da61d7cac5
feat: add nix flake
2025-09-01 22:48:37 -04:00
Boris Verkhovskiy
9b23cd5394
feat: use compileStreaming when loading wasm parsers
2025-09-01 22:08:20 -04:00
ObserverOfTime
b75196bb81
feat(c): rename DecodeFunction to TSDecodeFunction
...
Keep a typedef for backwards compatibility until ABI 16.
2025-09-01 03:17:44 -04:00
ObserverOfTime
dbe88f8bbb
fixup: remove permission check
2025-09-01 07:35:40 +03:00
ObserverOfTime
f9a331a505
ci(spam): fix permission check
2025-09-01 07:35:40 +03:00
ObserverOfTime
47beafb836
fix(playground): account for missing button
2025-08-31 14:08:06 -04:00
Will Lillis
a12a79b366
fix(cli): canonicalize --lib-path arguments
...
This fixes an issue where "./foo.so" would would work but "foo.so" would not.
2025-08-31 01:10:43 -04:00
Will Lillis
62f93e221d
feat(test): pin fixture grammars to specific commits
2025-08-31 01:05:42 -04:00
ObserverOfTime
07986471b3
feat(xtask): automate edits to emscripten generated d.ts
2025-08-30 18:14:42 -04:00
ObserverOfTime
dba8446d9e
feat(web)!: use bigint for timeouts
2025-08-30 18:14:42 -04:00
ObserverOfTime
0c5cdcb161
fix(xtask): add heap symbols to emscripten exported methods
2025-08-30 18:14:42 -04:00
ObserverOfTime
8b3e023ef0
chore(web): remove source files from package
...
and generated files from version control
2025-08-30 18:14:42 -04:00
dependabot[bot]
a0fd1ded97
build(deps): bump wasmparser from 0.224.1 to 0.229.0 in the cargo group
...
Bumps the cargo group with 1 update: [wasmparser](https://github.com/bytecodealliance/wasm-tools ).
Updates `wasmparser` from 0.224.1 to 0.229.0
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/commits )
---
updated-dependencies:
- dependency-name: wasmparser
dependency-version: 0.229.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-30 18:13:55 -04:00
ObserverOfTime
5272b6b908
refactor(web): use nullish coalescing operator
2025-08-30 18:13:39 -04:00
dependabot[bot]
a866eb5dd0
build(deps): bump the npm group across 1 directory with 9 updates
...
Bumps the npm group with 8 updates in the /lib/binding_web directory:
| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `22.13.1` | `24.3.0` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8 ) | `3.0.5` | `3.2.4` |
| [dts-buddy](https://github.com/Rich-Harris/dts-buddy ) | `0.5.4` | `0.6.2` |
| [esbuild](https://github.com/evanw/esbuild ) | `0.25.0` | `0.25.9` |
| [source-map](https://github.com/mozilla/source-map ) | `0.7.4` | `0.7.6` |
| [tsx](https://github.com/privatenumber/tsx ) | `4.20.3` | `4.20.5` |
| [typescript](https://github.com/microsoft/TypeScript ) | `5.7.3` | `5.9.2` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ) | `8.23.0` | `8.41.0` |
Updates `@types/node` from 22.13.1 to 24.3.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `@vitest/coverage-v8` from 3.0.5 to 3.2.4
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.4/packages/coverage-v8 )
Updates `dts-buddy` from 0.5.4 to 0.6.2
- [Release notes](https://github.com/Rich-Harris/dts-buddy/releases )
- [Changelog](https://github.com/sveltejs/dts-buddy/blob/main/CHANGELOG.md )
- [Commits](https://github.com/Rich-Harris/dts-buddy/compare/v0.5.4...v0.6.2 )
Updates `esbuild` from 0.25.0 to 0.25.9
- [Release notes](https://github.com/evanw/esbuild/releases )
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md )
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.0...v0.25.9 )
Updates `source-map` from 0.7.4 to 0.7.6
- [Release notes](https://github.com/mozilla/source-map/releases )
- [Changelog](https://github.com/mozilla/source-map/blob/master/CHANGELOG.md )
- [Commits](https://github.com/mozilla/source-map/compare/v0.7.4...0.7.6 )
Updates `tsx` from 4.20.3 to 4.20.5
- [Release notes](https://github.com/privatenumber/tsx/releases )
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs )
- [Commits](https://github.com/privatenumber/tsx/compare/v4.20.3...v4.20.5 )
Updates `typescript` from 5.7.3 to 5.9.2
- [Release notes](https://github.com/microsoft/TypeScript/releases )
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml )
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.3...v5.9.2 )
Updates `typescript-eslint` from 8.23.0 to 8.41.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.41.0/packages/typescript-eslint )
Updates `vitest` from 3.0.5 to 3.2.4
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.4/packages/vitest )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 24.3.0
dependency-type: direct:development
update-type: version-update:semver-major
dependency-group: npm
- dependency-name: "@vitest/coverage-v8"
dependency-version: 3.2.4
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: dts-buddy
dependency-version: 0.6.2
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: esbuild
dependency-version: 0.25.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: source-map
dependency-version: 0.7.6
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: tsx
dependency-version: 4.20.5
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: typescript
dependency-version: 5.9.2
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.41.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: vitest
dependency-version: 3.2.4
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-30 18:13:39 -04:00
ObserverOfTime
90bdd63a71
fix(npm): add directory to repository fields
...
and remove non-existent "main" entry point
2025-08-30 17:16:25 -04:00
ObserverOfTime
ed2abf8609
ci(dependabot): update npm dependencies
2025-08-30 17:08:46 -04:00
ObserverOfTime
d188bf6352
chore: remove emscripten xtask & workflow
2025-08-30 16:52:22 -04:00
vemoo
4db3edadf4
fix(web): correct type errors, improve build
2025-08-30 16:51:41 -04:00
ObserverOfTime
ca27fb5d43
fix(cli): fix DSL type declarations
2025-08-30 16:47:47 -04:00
ObserverOfTime
e6fe91e2e7
build(zig): support wasmtime in more archs
2025-08-30 16:47:47 +03:00
ObserverOfTime
b57b7213a9
fix(rust): make some methods const
...
Addresses clippy::missing-const-for-fn
2025-08-30 16:47:47 +03:00
ObserverOfTime
ed91767663
build(rust)!: bump MSRV to 1.84.0
...
Required by wasmtime
2025-08-30 16:47:47 +03:00
ObserverOfTime
489ad07e8b
build(deps): bump wasmtime-c-api to v33.0.2
2025-08-30 16:47:47 +03:00
ObserverOfTime
88e323ca43
fix(xtask): commit Cargo.lock in upgrade_wasmtime
...
And add missing zig dependency update
2025-08-30 16:47:47 +03:00
RedCMD
721b0e8b11
fix(web): update .d.ts files
2025-08-29 21:39:53 -04:00
Will Lillis
ac171eb280
fix(generate): warn users when extra rule can lead to parser hang
...
When a *named* rule in the extras is able to match the empty string,
parsing can hang in certain situations (i.e. near EOF).
2025-08-29 21:38:41 -04:00
Boris Verkhovskiy
a1211d3fbd
feat(web): inline C source code in source map
2025-08-29 14:26:27 -04:00
ObserverOfTime
0be215e152
fix(bindings): properly detect MSVC compiler
2025-08-29 13:32:55 +03:00
ObserverOfTime
c12b4a1565
ci: add a spam closing workflow
2025-08-29 13:26:53 +03:00
WillLillis
34ef1157a6
feat(ci): build libraries on windows x64 with mingw
2025-08-28 21:28:48 -04:00
ObserverOfTime
e0edfe1cb3
build(zig): support wasmtime for ARM64 Windows (MSVC)
2025-08-29 01:12:46 +03:00
Amaan Qureshi
8387101a61
fix(lib): allow error nodes to match when they are child nodes
2025-08-28 18:02:47 -04:00
dependabot[bot]
9fdf7213d4
ci: bump actions/upload-pages-artifact from 3 to 4 in the actions group
...
Bumps the actions group with 1 update: [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact ).
Updates `actions/upload-pages-artifact` from 3 to 4
- [Release notes](https://github.com/actions/upload-pages-artifact/releases )
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 17:15:24 -04:00
Amaan Qureshi
b7f36a13ba
fix(lib): check if an ERROR node is named before assuming it's the builtin error node
2025-08-28 17:13:57 -04:00
ObserverOfTime
66ea1a6dda
style(zig): reformat files
2025-08-28 20:54:25 +03:00
ObserverOfTime
298b6775c6
build(zig): use ArrayListUnmanaged
...
This is supported in 0.14 and 0.15
2025-08-28 20:54:25 +03:00
ObserverOfTime
2e4b7d26b1
build(zig): don't link wasmtime in static build
2025-08-28 20:54:25 +03:00
ObserverOfTime
dab84a1b10
build(zig): expose wasmtimeDep function
...
This allows consumers to reuse the dependency.
2025-08-28 20:54:25 +03:00
Will Lillis
340df02655
docs: clarify definition of newline
2025-08-28 13:31:25 -04:00
Amaan Qureshi
99d8b58868
docs: clarify that a reserved rule must exist in the grammar
2025-08-28 13:28:37 -04:00
Amaan Qureshi
1152bf4c9d
fix(cli): show rule names for rules with metadata
2025-08-28 13:28:37 -04:00
ObserverOfTime
107bd800b0
fix(bindings): improve zig dependency fetching logic
...
Currently, including a tree-sitter parser as a dependency in a zig
project and running `zig build test` on the project will fetch the
zig-tree-sitter dependency declared by the parser. This is a problem
because (a) consumers may not want this dependency for whatever reason
and (b) due to how often Zig breaks everything and how scarcely most
tree-sitter parsers are updated, the zig-tree-sitter version pinned
by the parser module will often be outdated and broken.
The workaround I used was taken from https://ziggit.dev/t/11234
2025-08-28 10:31:24 +03:00
ObserverOfTime
e67f9f8f7a
fix(bindings): add tree-sitter as npm dev dependency
...
npm is supposed to automatically install peer dependencies since v7
but sometimes it's not doing it and we need this dependency for tests
2025-08-27 19:34:09 +03:00
Quentin LE DILAVREC
79177a1cd5
fix(rust): EqCapture accepted cases where number of captured nodes differed by one
...
Problem: When using alternations, the `#eq?` predicate does not always use the same capture name.
Solution: Iterate the left and right captured nodes more independently.
2025-08-27 10:25:29 +02:00
dependabot[bot]
0a7274678a
build(deps): bump the cargo group with 8 updates
...
Bumps the cargo group with 8 updates:
| Package | From | To |
| --- | --- | --- |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.33` | `1.2.34` |
| [filetime](https://github.com/alexcrichton/filetime ) | `0.2.25` | `0.2.26` |
| [indexmap](https://github.com/indexmap-rs/indexmap ) | `2.10.0` | `2.11.0` |
| [regex](https://github.com/rust-lang/regex ) | `1.11.1` | `1.11.2` |
| [regex-syntax](https://github.com/rust-lang/regex ) | `0.8.5` | `0.8.6` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.142` | `1.0.143` |
| [tempfile](https://github.com/Stebalien/tempfile ) | `3.20.0` | `3.21.0` |
| [thiserror](https://github.com/dtolnay/thiserror ) | `2.0.15` | `2.0.16` |
Updates `cc` from 1.2.33 to 1.2.34
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.33...cc-v1.2.34 )
Updates `filetime` from 0.2.25 to 0.2.26
- [Commits](https://github.com/alexcrichton/filetime/commits )
Updates `indexmap` from 2.10.0 to 2.11.0
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md )
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.10.0...2.11.0 )
Updates `regex` from 1.11.1 to 1.11.2
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.11.1...1.11.2 )
Updates `regex-syntax` from 0.8.5 to 0.8.6
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/regex-syntax-0.8.5...regex-syntax-0.8.6 )
Updates `serde_json` from 1.0.142 to 1.0.143
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.142...v1.0.143 )
Updates `tempfile` from 3.20.0 to 3.21.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/commits )
Updates `thiserror` from 2.0.15 to 2.0.16
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/2.0.15...2.0.16 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.34
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: filetime
dependency-version: 0.2.26
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: indexmap
dependency-version: 2.11.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: regex
dependency-version: 1.11.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: regex-syntax
dependency-version: 0.8.6
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_json
dependency-version: 1.0.143
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: tempfile
dependency-version: 3.21.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: thiserror
dependency-version: 2.0.16
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-26 16:11:45 +02:00
WillLillis
0d914c860a
fix(wasm): delete var_i32_type after initializing global stack
...
pointer value
2025-08-25 17:16:02 -04:00
ObserverOfTime
eb5ad7eb26
feat(playground): add a button to copy the tree
...
Co-Authored-By: Firas al-Khalil <firasalkhalil@gmail.com>
2025-08-25 10:21:48 +03:00
ObserverOfTime
4602e60c1b
refactor(playground): move style to head
2025-08-25 10:21:48 +03:00
ObserverOfTime
1c640ac2c3
fix(cli): correct resource paths
2025-08-25 10:21:48 +03:00
John-Philip Taylor
10f5a42fd7
feat(cli): Version updates ( #4179 )
...
- `version` on its own displays the current version
- `version --bump patch` bumps the patch version
- `version --bump minor` bumps the minor version
- `version --bump major` bumps the major version
- `version 1.2.3` bumps the version directly (existing behaviour)
All flavours of version bump displays a string in the form:
`Bumping version 1.2.3 to 4.5.6`
2025-08-24 00:53:41 -04:00
Will Lillis
fee50ad0ce
feat(lib): add lldb pretty-printers for some C lib types
2025-08-22 20:10:03 -04:00
Alexander von Gluck
be888a5fef
fix(c): add Haiku support to endian.h
2025-08-22 14:09:13 +03:00
bfredl
86b9f81ad6
build(zig)!: upgrade build.zig to zig 0.15
...
This no longer supports zig 0.14.
2025-08-21 11:44:02 +02:00
ObserverOfTime
88e0b4cea4
docs: change WASM/wasm to Wasm
...
That is the official capitalisation.
2025-08-21 09:56:32 +03:00
dependabot[bot]
7bc8f76667
build(deps): bump the cargo group with 5 updates
...
Bumps the cargo group with 5 updates:
| Package | From | To |
| --- | --- | --- |
| [anyhow](https://github.com/dtolnay/anyhow ) | `1.0.98` | `1.0.99` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.32` | `1.2.33` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.44` | `4.5.45` |
| [thiserror](https://github.com/dtolnay/thiserror ) | `2.0.12` | `2.0.15` |
| [ureq](https://github.com/algesten/ureq ) | `3.0.12` | `3.1.0` |
Updates `anyhow` from 1.0.98 to 1.0.99
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.98...1.0.99 )
Updates `cc` from 1.2.32 to 1.2.33
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.32...cc-v1.2.33 )
Updates `clap` from 4.5.44 to 4.5.45
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.44...clap_complete-v4.5.45 )
Updates `thiserror` from 2.0.12 to 2.0.15
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/2.0.12...2.0.15 )
Updates `ureq` from 3.0.12 to 3.1.0
- [Changelog](https://github.com/algesten/ureq/blob/main/CHANGELOG.md )
- [Commits](https://github.com/algesten/ureq/compare/3.0.12...3.1.0 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-version: 1.0.99
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: cc
dependency-version: 1.2.33
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.5.45
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: thiserror
dependency-version: 2.0.15
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: ureq
dependency-version: 3.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-19 10:26:40 +02:00
ObserverOfTime
0bb43f7afb
fix(playground): scroll with vanilla JS
...
jQuery must burn in fire.
2025-08-14 11:03:52 +03:00
Soheil Salmani
99c121bfe8
docs: replace TSInput by TSInputEdit in "Advanced Parsing"
2025-08-13 22:58:17 +03:00
Carlos Scheidegger
c60264b87f
docs(web): fix deno import example
2025-08-13 22:56:21 +03:00
Andrey L.
f9f7ae0850
fix(bindings): make npm repository field an object
2025-08-13 22:54:37 +03:00
ObserverOfTime
d45642c345
fix(bindings): don't ignore lockfiles
2025-08-13 22:51:12 +03:00
dependabot[bot]
790dcc115f
ci: bump the actions group with 2 updates
...
Bumps the actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout ) and [actions/download-artifact](https://github.com/actions/download-artifact ).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v4...v5 )
Updates `actions/download-artifact` from 4 to 5
- [Release notes](https://github.com/actions/download-artifact/releases )
- [Commits](https://github.com/actions/download-artifact/compare/v4...v5 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/download-artifact
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 12:35:25 +02:00
dependabot[bot]
79a5e6a671
build(deps): bump the cargo group with 4 updates
...
Bumps the cargo group with 4 updates: [cc](https://github.com/rust-lang/cc-rs ), [clap](https://github.com/clap-rs/clap ), [clap_complete](https://github.com/clap-rs/clap ) and [glob](https://github.com/rust-lang/glob ).
Updates `cc` from 1.2.31 to 1.2.32
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.31...cc-v1.2.32 )
Updates `clap` from 4.5.42 to 4.5.44
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.42...clap_complete-v4.5.44 )
Updates `clap_complete` from 4.5.55 to 4.5.57
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.55...clap_complete-v4.5.57 )
Updates `glob` from 0.3.2 to 0.3.3
- [Release notes](https://github.com/rust-lang/glob/releases )
- [Changelog](https://github.com/rust-lang/glob/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/glob/compare/v0.3.2...v0.3.3 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.32
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.5.44
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-version: 4.5.57
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: glob
dependency-version: 0.3.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 10:26:29 +02:00
Will Lillis
3a47bc4435
fix(cli): escape delimiters '"' and '`' in cst node text
2025-08-11 22:39:12 -04:00
Will Lillis
3294b04436
fix(cli): remove trailing whitespace in cst print
2025-08-10 14:52:25 -04:00
Will Lillis
2c02f0767b
fix(docs): correct awkward wording in fail-fast listing
2025-08-10 14:52:25 -04:00
Will Lillis
6f7f9a3869
refactor(test): replace long tuples with structs
2025-08-10 14:52:25 -04:00
Will Lillis
1704c604bf
feat(test): allow cst as expected output of test case
2025-08-10 14:52:25 -04:00
Will Lillis
21b38004da
fix(rust): adapt to new nightly iterator lints
2025-08-10 13:28:52 -04:00
Will Lillis
aed8b8b32c
feat(cli): rebuild parsers by default when --grammar-path is passed.
2025-08-10 13:28:52 -04:00
Will Lillis
1562b719d2
feat(cli): add --rebuild flag to query, highlight, and tags commands
2025-08-10 13:28:52 -04:00
Will Lillis
e749a97f9f
fix(rust): make String clones more explicit
2025-08-09 16:02:28 -04:00
Will Lillis
3d9f4d1bd3
fix(rust): remove redundant String clones
2025-08-09 16:02:28 -04:00
ObserverOfTime
9f2dd2f377
fix(bindings): fix clean makefile target
2025-08-09 14:41:22 +03:00
Ronald T. Casili
d87921bb9c
fix(bindings): update zig template files ( #4637 )
2025-08-09 10:18:07 +03:00
ObserverOfTime
f7838748df
fix(cli): drop homepage link from config
...
We don't actually use this currently and the vast majority of grammars
don't have a homepage other than the repository itself.
2025-08-09 10:14:17 +03:00
ObserverOfTime
7e7e376046
refactor(cli): conditional assignment consistency
2025-08-08 10:53:57 +03:00
ObserverOfTime
bbec252c51
refactor(cli): drop unused function
2025-08-08 10:53:57 +03:00
ObserverOfTime
9d619d6fdc
fix(bindings): use custom class name
2025-08-08 10:53:57 +03:00
Will Lillis
49ae48f7fe
fix(ci): ignore mismatched_lifetime_syntaxes lint when building wasmtime
2025-08-08 09:44:09 +02:00
Will Lillis
46a0e94de7
fix(rust): ignore new mismatched-lifetime-syntaxes lint
2025-08-08 09:44:09 +02:00
dependabot[bot]
2368af52ea
build(deps): bump the cargo group with 5 updates
...
Bumps the cargo group with 5 updates:
| Package | From | To |
| --- | --- | --- |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.30` | `1.2.31` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.41` | `4.5.42` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.141` | `1.0.142` |
| [notify](https://github.com/notify-rs/notify ) | `8.1.0` | `8.2.0` |
| [notify-debouncer-full](https://github.com/notify-rs/notify ) | `0.5.0` | `0.6.0` |
Updates `cc` from 1.2.30 to 1.2.31
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.30...cc-v1.2.31 )
Updates `clap` from 4.5.41 to 4.5.42
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.41...clap_complete-v4.5.42 )
Updates `serde_json` from 1.0.141 to 1.0.142
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.141...v1.0.142 )
Updates `notify` from 8.1.0 to 8.2.0
- [Release notes](https://github.com/notify-rs/notify/releases )
- [Changelog](https://github.com/notify-rs/notify/blob/main/CHANGELOG.md )
- [Commits](https://github.com/notify-rs/notify/compare/notify-8.1.0...notify-8.2.0 )
Updates `notify-debouncer-full` from 0.5.0 to 0.6.0
- [Release notes](https://github.com/notify-rs/notify/releases )
- [Changelog](https://github.com/notify-rs/notify/blob/main/CHANGELOG.md )
- [Commits](https://github.com/notify-rs/notify/compare/debouncer-full-0.5.0...debouncer-full-0.6.0 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.31
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.5.42
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_json
dependency-version: 1.0.142
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: notify
dependency-version: 8.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: notify-debouncer-full
dependency-version: 0.6.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-05 09:27:17 +02:00
Will Lillis
d000698847
fix(docs): add information on missing cli command options
2025-08-03 14:34:04 -04:00
Will Lillis
d641249f85
feat(cli): include language name in dump-languages output
2025-08-03 14:34:04 -04:00
Will Lillis
346080aad2
refactor(loader): replace replace_dashes_with_underscores with rust std lib
2025-08-03 14:34:04 -04:00
Will Lillis
acfeed006a
feat(cli): allow users to specify dynamic libraries directly for
...
parse, query, test, and fuzz subcommands
2025-08-03 14:34:04 -04:00
Will Lillis
5e1daf0c41
fix(rust)!: take u32 for index parameter to Node::{child, named_child}
...
Co-authored-by: Ye Sijun <junnplus@gmail.com>
2025-08-03 12:58:53 -04:00
Will Lillis
7d0b94c008
fix(docs): indicate CJS env var export is different on Windows platforms
2025-08-03 12:58:34 -04:00
Will Lillis
d3c2fed4b3
fix(rust): correct indices for Node::utf16_text
2025-08-02 16:03:55 -04:00
dependabot[bot]
32c88194f5
build(deps): bump the cargo group with 2 updates
...
Bumps the cargo group with 2 updates: [cc](https://github.com/rust-lang/cc-rs ) and [serde_json](https://github.com/serde-rs/json ).
Updates `cc` from 1.2.29 to 1.2.30
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.29...cc-v1.2.30 )
Updates `serde_json` from 1.0.140 to 1.0.141
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.140...v1.0.141 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.30
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_json
dependency-version: 1.0.141
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-02 11:59:23 +02:00
Will Lillis
9ced6172de
fix(cli): improve error message when language in list can't be found ( #4643 )
...
Problem: When multiple input paths are provided to the `parse` command (a la `tree-sitter parse --paths [...]`), if a language can't be found for one of the paths, it can be a little unclear *which* path caused the failure. The loader *can* fail with `Failed to load language for file name <foo.bar>`, but this isn't guaranteed.
Solution: Attach some additional context in the case where multiple paths can be provided, displaying the problematic path on failure.
2025-08-02 11:52:54 +02:00
Pieter Goetschalckx
07b4c8d05d
fix(cli): add reserved type declarations and schema
...
- Use `globalThis` for `reserved` function export
- Add `reserved` field and function to DSL declarations
- Add `reserved` rule to grammar schema
2025-08-02 12:01:41 +03:00
Antonin Delpeuch
b787f31481
feat(bindings): generate in 2 steps via make/cmake ( #4646 )
...
This makes it possible to run `make` or `cmake --build` in grammar
repos where `grammar.json` hasn't been included, and still get the parser
compilation to work.
2025-08-02 11:57:29 +03:00
Riley Bruins
6850df969d
fix(query): prevent cycles when analyzing hidden children
...
**Problem:** `query.c` compares the current analysis state with the
previous analysis state to see if they are equal, so that it can return
early if so. This prevents redundant work. However, the comparison
function here differs from the one used for sorted insertion/lookup in
that it does not check any state data other than the child index. This
is problematic because it leads to infinite analysis when hidden nodes
have cycles.
**Solution:** Remove the custom comparison function, and apply the
insertion/lookup comparison function in place of it.
**NOTE:** This commit also changes the comparison function slightly, so
that some comparisons are reordered. Namely, for performance, it returns
early if the lhs depth is less than the rhs depth. Is this acceptable?
Tests still pass and nothing hangs in my testing, but it still seems
sketchy. Returning early if the lhs depth is greater than the rhs depth
does seem to make query analysis hang, weirdly enough... Keeping the
depth checks at the end of the loop also works, but it introduces a
noticeable performance regression (for queries that otherwise wouldn't
have had analysis cycles, of course).
2025-07-30 00:41:01 -04:00
Will Lillis
62c53197c4
fix(cli): eliminate leak of version string
2025-07-29 20:44:48 -04:00
Will Lillis
cd2cb661a4
fix(docs): update cli path for install commands
2025-07-29 02:42:43 -04:00
Antonin Delpeuch
8e90799e27
feat(generate): Support for --stage=json/parser/lib
2025-07-26 22:48:00 -04:00
Antonin Delpeuch
d810217e63
refactor: Expose node_types_json without generating C code
2025-07-26 22:48:00 -04:00
Antonin Delpeuch
8676eda663
feat: Only evaluate grammar.js to grammar.json
...
This adds an `--evaluate-only` option to `tree-sitter generate`
so that it only does the evaluation of `grammar.js` to
`src/grammar.json`, without continuing on with the generation of
`src/parser.c` and related files.
It's a follow-up to #4580 .
2025-07-26 22:48:00 -04:00
Robert Muir
8c61bbdb73
feat(bindings): improve python binding test
...
Previously, the test would not detect ABI incompatibilities.
2025-07-25 13:22:49 +03:00
ObserverOfTime
99988b7081
fix(bindings): improve python platform detection
2025-07-25 13:21:36 +03:00
ObserverOfTime
436162ae7c
fix(bindings): only include top level LICENSE file
...
Ref: tree-sitter/workflows#33
2025-07-25 13:21:14 +03:00
ObserverOfTime
c3012a7d8a
fix(bindings): use parser title in lib.rs description
2025-07-25 13:19:03 +03:00
Daniel Müller
f0165dee92
feat(rust): Add direct links to documentation
...
Make the URL to the documentation of the various crates known so that it
will be easier to click through to it from a crates.io search [0].
[0] https://doc.rust-lang.org/cargo/reference/manifest.html#the-documentation-field
2025-07-22 18:36:08 -04:00
Riley Bruins
dff828cdbe
fix(rust): prevent overflow in error message calculation
...
**Problem:** When encountering an invalid symbol at the beginning of the
file, the rust bindings attempt to index the character at position -1 of
the query source, which leads to an overflow and thus invalid character
index which causes a panic.
**Solution:** Bounds check the offset before performing the subtraction.
2025-07-22 09:51:28 +02:00
Christian Clason
c18d019db0
Revert "feat(generate): warn about unreachable variables ( #4567 )"
...
This reverts commit 25c601bd2f .
Reason: Too many false positives.
2025-07-22 09:49:26 +02:00
Antonin Delpeuch
25c601bd2f
feat(generate): warn about unreachable variables ( #4567 )
2025-07-21 11:39:18 +02:00
Will Lillis
85ab2929e9
docs(license): update year
2025-07-20 21:14:47 -04:00
Will Lillis
86b2c939c7
fix(rust): address nightly clippy lint useless_if_let_seq
2025-07-20 21:14:47 -04:00
Benjamin A. Beasley
e3b85fd0d5
feat(cargo): update etcetera to 0.10
...
allows dropping a number of windows-targets crates
2025-07-20 12:47:17 +02:00
Will Lillis
0f79c61188
perf(generate): reserve more Vec capacities
2025-07-17 01:51:56 -04:00
Ronald T. Casili
618b9dd66e
fix(build.zig): remove deprecated addStaticLibrary()
2025-07-16 11:08:07 +02:00
dependabot[bot]
ccc707152a
build(deps): bump the cargo group with 3 updates
...
---
updated-dependencies:
- dependency-name: clap
dependency-version: 4.5.41
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-version: 4.5.55
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete_nushell
dependency-version: 4.5.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-15 07:17:05 +00:00
Alex Aron
aeab755033
fix(lib): add wasm32 support to portable/endian.h ( #4607 )
2025-07-14 17:47:40 +02:00
RedCMD
912167a9cd
chore(web): fix indentation in type files
2025-07-14 12:50:04 +02:00
ObserverOfTime
42e2bba8d6
build(bindings): update Makefile
...
Similar to the changes made to the core Makefile.
2025-07-14 11:02:19 +03:00
Antonin Décimo
56c2fe59cb
build(make): cleanup include dir on uninstall
2025-07-14 11:02:19 +03:00
Antonin Décimo
c7f877de96
build(make): invoke ln in the link directory
2025-07-14 11:02:19 +03:00
Antonin Décimo
aa11c198af
ci: don't build the C library with MinGW
...
Only the C compiler is currently installed, without its binutils.
2025-07-14 11:02:19 +03:00
Antonin Décimo
f8f93c1ec1
build(make): fix MinGW builds
...
Rename libtree-sitter.lib target to libtree-sitter.dll.a which is
what MinGW actually uses, move the target after libtree-sitter.dll,
and make sure it is installed to the correct location.
Also avoid invoking `cc -dumpmachine` multiple times.
2025-07-14 11:02:19 +03:00
ObserverOfTime
f04fab9b7a
docs: update bindings list
2025-07-14 10:24:17 +03:00
Will Lillis
854f527f6e
perf: reorder conditional operands
2025-07-13 19:42:30 +02:00
Will Lillis
c740f244ba
fix(generate): propagate node types error
2025-07-13 19:42:30 +02:00
Will Lillis
5ed2c77b59
perf: reorder expensive conditional operand
2025-07-12 13:51:54 -04:00
Will Lillis
ad0f953c21
chore(rust): remove empty grammar_files file
2025-07-10 23:44:10 -04:00
Will Lillis
3c56f53105
fix(test): unwrap result of get_node_types in
...
`test_node_types_deeper_extras` test
2025-07-10 17:42:52 -04:00
WillLillis
d2e06bf130
fix(generate): use topological sort for subtype map
2025-07-10 08:57:55 -04:00
Antonin Delpeuch
36d93aeff3
perf: More efficient computation of used symbols
...
As the call to `symbol_is_used` does not depend
on the production, it is more efficient to call it
only once outside the loop over productions.
I'm not sure if `rustc` is able to do this optimization
on its own (it would need to know that the function
is pure, which sounds difficult in general).
2025-07-09 22:34:53 -04:00
Will Lillis
1e7d77c517
perf: reserve Vec capacities where appropriate
2025-07-09 21:46:25 -04:00
liangmulu
81849352fc
chore: remove redundant words in comment
...
Signed-off-by: liangmulu <liangmulu@outlook.com>
2025-07-09 18:38:37 +02:00
dependabot[bot]
01d8a39c0b
build(deps): bump the cargo group across 1 directory with 3 updates
...
Bumps the cargo group with 3 updates in the / directory: [cc](https://github.com/rust-lang/cc-rs ), [indexmap](https://github.com/indexmap-rs/indexmap ) and [notify](https://github.com/notify-rs/notify ).
Updates `cc` from 1.2.27 to 1.2.29
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.27...cc-v1.2.29 )
Updates `indexmap` from 2.9.0 to 2.10.0
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md )
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.9.0...2.10.0 )
Updates `notify` from 8.0.0 to 8.1.0
- [Release notes](https://github.com/notify-rs/notify/releases )
- [Changelog](https://github.com/notify-rs/notify/blob/main/CHANGELOG.md )
- [Commits](https://github.com/notify-rs/notify/compare/notify-8.0.0...notify-8.1.0 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.29
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: indexmap
dependency-version: 2.10.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: notify
dependency-version: 8.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-08 11:19:24 +00:00
Antonin Delpeuch
1a3b0375fa
Fix 'extra' field generation for node-types.json
2025-07-07 21:15:09 -04:00
Antonin Delpeuch
59bcffe83b
Add test demonstrating failure to populate 'extra'
...
The test is currently failing, will be fixed by the next commit.
2025-07-07 21:15:09 -04:00
Will Lillis
45318922d8
fix(xtask): run generate crate unit tests
2025-07-06 17:05:21 -04:00
Will Lillis
1a2167b155
fix(ci): run generate crate unit tests
2025-07-06 17:05:21 -04:00
WillLillis
8938309f4b
fix(rust): ignore new nightly lint, correct order of lint list
2025-07-06 12:45:15 -04:00
WillLillis
51a800b7df
fix(docs): don't show mdbook help popup when using code editor
2025-07-01 18:23:38 -04:00
Christian Clason
a6cd6abcfb
ci(nvim-ts): update paths to refactor
...
Problem: After https://github.com/tree-sitter/tree-sitter/pull/4496 , the
crater tests from nvim-treesitter no longer run on PRs with relevant changes.
Solution: Update the paths in the workflows to the new structure.
Also throttle the build step to 10 parallel tasks (reduces flakiness on
Windows).
Also raise the timeout limit to 30 minutes (it's more expensive to have
to restart flaky tests than to let them run).
2025-06-27 16:34:17 +02:00
Veesh Goldman
b09a15eb54
fix(cli): require correct setuptools version
2025-06-27 14:10:30 +02:00
Will Lillis
a9818e4b17
fix(generate): only display conflicting symbol name in non-terminal
...
word token error message if available
2025-06-26 00:55:03 -04:00
Will Lillis
be8b3e282a
fix(rust): remove unused Command import
2025-06-26 00:54:44 -04:00
dependabot[bot]
259e34435f
build(deps): bump brace-expansion in /crates/cli/eslint
...
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion ) from 1.1.11 to 1.1.12.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases )
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12 )
---
updated-dependencies:
- dependency-name: brace-expansion
dependency-version: 1.1.12
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 09:30:13 +02:00
dependabot[bot]
eaa10b279f
build(deps): bump the cargo group with 4 updates
...
Bumps the cargo group with 4 updates: [cc](https://github.com/rust-lang/cc-rs ), [memchr](https://github.com/BurntSushi/memchr ), [webbrowser](https://github.com/amodm/webbrowser-rs ) and [ureq](https://github.com/algesten/ureq ).
Updates `cc` from 1.2.26 to 1.2.27
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.26...cc-v1.2.27 )
Updates `memchr` from 2.7.4 to 2.7.5
- [Commits](https://github.com/BurntSushi/memchr/compare/2.7.4...2.7.5 )
Updates `webbrowser` from 1.0.4 to 1.0.5
- [Release notes](https://github.com/amodm/webbrowser-rs/releases )
- [Changelog](https://github.com/amodm/webbrowser-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/amodm/webbrowser-rs/compare/v1.0.4...v1.0.5 )
Updates `ureq` from 3.0.11 to 3.0.12
- [Changelog](https://github.com/algesten/ureq/blob/main/CHANGELOG.md )
- [Commits](https://github.com/algesten/ureq/compare/3.0.11...3.0.12 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.27
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: memchr
dependency-version: 2.7.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: webbrowser
dependency-version: 1.0.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: ureq
dependency-version: 3.0.12
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-06-17 08:18:16 +00:00
dependabot[bot]
8a15b881fd
build(deps): bump esbuild and tsx in /lib/binding_web
...
Bumps [esbuild](https://github.com/evanw/esbuild ) to 0.25.0 and updates ancestor dependency [tsx](https://github.com/privatenumber/tsx ). These dependencies need to be updated together.
Updates `esbuild` from 0.23.1 to 0.25.0
- [Release notes](https://github.com/evanw/esbuild/releases )
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG-2024.md )
- [Commits](https://github.com/evanw/esbuild/compare/v0.23.1...v0.25.0 )
Updates `tsx` from 4.19.2 to 4.19.3
- [Release notes](https://github.com/privatenumber/tsx/releases )
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs )
- [Commits](https://github.com/privatenumber/tsx/compare/v4.19.2...v4.19.3 )
---
updated-dependencies:
- dependency-name: esbuild
dependency-version: 0.25.0
dependency-type: indirect
- dependency-name: tsx
dependency-version: 4.19.3
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-06-15 12:48:55 +03:00
Brian Schwind
f475182c7d
fix(playground): initialize tree nodes with a 'plain' class
2025-06-15 12:45:55 +03:00
sammyne
4c51f27b0a
feat(cli): support selecting bindings in init cmd
2025-06-15 12:43:03 +03:00
Tamir Bahar
64760ffa76
fix(web): fix typing for Parser.init
...
Since we're usually only providing `locateFile`, we need the type to be
`Partial<>` to allow it.
This also matches the typing in `@types/emscripten`'s
`EmscriptenModuleFactory` type signature.
2025-06-15 12:41:21 +03:00
Andrew Dupont
02fff92b91
Fix type definitions in exports…
...
…and generate `.d.cts` files for CommonJS exports.
2025-06-15 09:46:05 +03:00
ObserverOfTime
876d5a96bf
chore: use issue types in templates
2025-06-14 11:27:29 +03:00
laur89
e8d3d01598
docs: fix CLI link in readme ( #4514 )
2025-06-13 11:11:44 -07:00
James McCoy
889015f03b
build(rust): use $CARGO_PKG_RUST_VERSION when generating bindings ( #4512 )
...
Since cargo 1.63, $CARGO_PKG_RUST_VERSION is set in the build
environment to the value of the rust-version Cargo.toml field.
This removes the need to manually invoke cargo from build.rs during a
build of the tree-sitter crate with the bindgen feature enabled.
Removing the cargo invocation also ensures the build doesn't write to
the current directory when the target directory has been redirected
elsewhere. "cargo metadata" will attempt to update Cargo.lock, which
will fail if the source tree is read-only.
2025-06-13 11:11:22 -07:00
ObserverOfTime
a2c98b4b5f
fix(loader): fix no-default-features build ( #4505 )
2025-06-11 09:00:54 -07:00
dependabot[bot]
46309a1f95
build(deps): bump the cargo group with 8 updates
...
Bumps the cargo group with 8 updates:
| Package | From | To |
| --- | --- | --- |
| [anstyle](https://github.com/rust-cli/anstyle ) | `1.0.10` | `1.0.11` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.25` | `1.2.26` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.39` | `4.5.40` |
| [clap_complete](https://github.com/clap-rs/clap ) | `4.5.52` | `4.5.54` |
| [clap_complete_nushell](https://github.com/clap-rs/clap ) | `4.5.6` | `4.5.7` |
| [flate2](https://github.com/rust-lang/flate2-rs ) | `1.1.1` | `1.1.2` |
| [toml](https://github.com/toml-rs/toml ) | `0.8.22` | `0.8.23` |
| [bindgen](https://github.com/rust-lang/rust-bindgen ) | `0.71.1` | `0.72.0` |
Updates `anstyle` from 1.0.10 to 1.0.11
- [Commits](https://github.com/rust-cli/anstyle/compare/v1.0.10...v1.0.11 )
Updates `cc` from 1.2.25 to 1.2.26
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.25...cc-v1.2.26 )
Updates `clap` from 4.5.39 to 4.5.40
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.39...clap_complete-v4.5.40 )
Updates `clap_complete` from 4.5.52 to 4.5.54
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.52...clap_complete-v4.5.54 )
Updates `clap_complete_nushell` from 4.5.6 to 4.5.7
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete_nushell-v4.5.6...clap_complete_nushell-v4.5.7 )
Updates `flate2` from 1.1.1 to 1.1.2
- [Release notes](https://github.com/rust-lang/flate2-rs/releases )
- [Commits](https://github.com/rust-lang/flate2-rs/compare/1.1.1...1.1.2 )
Updates `toml` from 0.8.22 to 0.8.23
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.22...toml-v0.8.23 )
Updates `bindgen` from 0.71.1 to 0.72.0
- [Release notes](https://github.com/rust-lang/rust-bindgen/releases )
- [Changelog](https://github.com/rust-lang/rust-bindgen/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/rust-bindgen/compare/v0.71.1...v0.72.0 )
---
updated-dependencies:
- dependency-name: anstyle
dependency-version: 1.0.11
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: cc
dependency-version: 1.2.26
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.5.40
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-version: 4.5.54
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete_nushell
dependency-version: 4.5.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: flate2
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: toml
dependency-version: 0.8.23
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: bindgen
dependency-version: 0.72.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-06-10 09:10:17 +02:00
Will Lillis
e1f6e38b57
fix(xtask): limit test command to a single thread on windows ( #4489 )
2025-06-08 09:39:55 -07:00
ObserverOfTime
9772270868
fix(bindings): update swift & node dependencies ( #4432 )
...
* fix(bindings): update swift & node dependencies
also add the dependency name to Package.swift
* chore: update config schema
2025-06-07 11:41:07 -07:00
Max Brunsfeld
0fdf569571
Reorganize rust crates into a flat crates directory, simplify some CI steps ( #4496 )
...
* Move all rust crates (except lib) into crates dir, w/o nesting
* Remove stale path from .gitattributes
* Rename lib.rs files for easier navigation
* Rename mod.rs file for easier navigation
* Fix emscripten-version path
* Fix fixtures dir paths
* Use the default rustfmt settings
* Don't use nightly on CI
2025-06-06 14:25:37 -07:00
James McCoy
a6e530b33d
fix(test): remove period in test_flatten_grammar_with_recursive_inline_variable
...
The period was dropped in the `thiserror` refactor
(79444e07f9 ), which caused the
`test_flatten_grammar_with_recursive_inline_variable` test to fail.
Signed-off-by: James McCoy <jamessan@jamessan.com>
2025-06-06 10:35:02 +02:00
Riley Bruins
6cabd9e67f
fix(query)!: assert that predicates end in ! or ?
...
Predicates/directives are documented to end in either `!` or `?`.
However, `query.c` allows them to be any valid identifier, and also
allows `?` or `!` characters anywhere inside an identifier.
This commit removes `?` and `!` from the list of valid identifier
characters, and asserts that predicates/directives only *end* in `?` or
`!`, respectively.
This commit is breaking because you can no longer do something like
`(#eq? @capture foo!bar)` (`foo!bar` must now be quoted).
2025-06-06 10:34:00 +02:00
Will Lillis
ac13c86675
fix(cli): use a generic Into<Path> over single type for path arguments
...
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2025-06-05 02:41:18 -04:00
Will Lillis
50eaf5befd
fix(query): correct expected and actual capture names in query assertions error message
2025-06-05 02:41:18 -04:00
Will Lillis
0220d9d93d
feat(cli): add grammar-path to init, test, version, fuzz,
...
`query`, `highlight` and `tags` subcommands
Allows users to run various commands on a grammar without
being inside the directory for said grammar.
2025-06-05 02:41:18 -04:00
Antonin Delpeuch
88ac3abaa1
docs(highlight): update README with the new way to load languages
2025-06-05 02:41:00 -04:00
Dan Jacka
ad133ecb38
docs: fix indentation & formatting
2025-06-05 01:53:35 -04:00
Thalia Archibald
6ba73fd888
fix(highlight): account for carriage return at EOF and chunk ends
2025-06-05 01:48:01 -04:00
Will Lillis
8bd923ab9e
fix(lib): replace raw array accesses with array_get
2025-06-05 00:53:11 -04:00
Olive Easton
50622f71f8
fix(generate): re-enable default url features
2025-06-04 10:29:59 +02:00
Max Brunsfeld
2ab9c9b590
Fully fix field underflow in go_to_previous_sibling ( #4483 )
...
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
2025-06-02 15:34:25 -07:00
dependabot[bot]
52b719f8fb
build(deps): bump the cargo group with 5 updates
...
Bumps the cargo group with 5 updates:
| Package | From | To |
| --- | --- | --- |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.23` | `1.2.25` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.38` | `4.5.39` |
| [clap_complete](https://github.com/clap-rs/clap ) | `4.5.50` | `4.5.52` |
| [clap_complete_nushell](https://github.com/clap-rs/clap ) | `4.5.5` | `4.5.6` |
| [libloading](https://github.com/nagisa/rust_libloading ) | `0.8.7` | `0.8.8` |
Updates `cc` from 1.2.23 to 1.2.25
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.23...cc-v1.2.25 )
Updates `clap` from 4.5.38 to 4.5.39
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.38...clap_complete-v4.5.39 )
Updates `clap_complete` from 4.5.50 to 4.5.52
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.50...clap_complete-v4.5.52 )
Updates `clap_complete_nushell` from 4.5.5 to 4.5.6
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete_nushell-v4.5.5...clap_complete_nushell-v4.5.6 )
Updates `libloading` from 0.8.7 to 0.8.8
- [Commits](https://github.com/nagisa/rust_libloading/commits )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.25
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.5.39
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-version: 4.5.52
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete_nushell
dependency-version: 4.5.6
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: libloading
dependency-version: 0.8.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 23:56:03 +02:00
zyoshoka
135eeded02
docs: update broken link in the playground page
2025-05-31 21:19:20 -04:00
Kai Pastor
0bdf698673
fix(build): pkgconfig and use of GNUInstallDirs ( #4319 )
...
* Fix pkgconfig
Init CMAKE_INSTALL_INCLUDEDIR before pc file generation.
Install pc file to CMAKE_INSTALL_LIBDIR/pkgconfig -
it accompanies the architecture-dependent library.
* Include GNUInstallDirs early
The CMake module initializes variables which are used for
exported information (CMake and pkgconfig).
* Change pc file install destination
2025-05-31 11:45:35 +02:00
Christian Clason
e7f9160867
Revert "feat: add build sha to parser.c header comment" ( #4475 )
...
This reverts commit dc4e232e6e .
Reason: The sha in the generated output (which most distro builds of
tree-sitter, including `cargo install`, strip) produces too many
conflicts when verifying via CI that parsers are regenerated on every
grammar change.
2025-05-29 11:47:06 -07:00
Max Brunsfeld
ca64399f9f
Ignore lock files in grammar repos
...
It is very common practice to ignore
these lock files for libraries, since they do not apply to applications
that use the libraries. The lock files are especially not useful in
tree-sitter grammar repos, since tree-sitter grammars should not have
dependencies. The lock files are just a source of merge conflicts and
spurious CI failures.
2025-05-28 10:58:45 -07:00
sogaiu
19148eaa0d
docs: mention ~ and $HOME for parser-directories
2025-05-28 11:21:09 +02:00
Max Brunsfeld
b8ba76b1ae
Fix hang in npm install script
2025-05-27 17:35:23 -07:00
Max Brunsfeld
f91255a201
Fix crash w/ goto_previous_sibling when parent node has leading extra child ( #4472 )
...
* Fix crash w/ goto_previous_sibling when parent node has leading extra
child Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
* Fix lint
Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
---------
Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2025-05-27 16:56:33 -07:00
Haoxiang Fei
06537fda83
fix: wasi has endian.h
2025-05-24 12:27:13 +02:00
dependabot[bot]
299f8a9fb9
build(deps): bump cc from 1.2.22 to 1.2.23 in the cargo group
...
Bumps the cargo group with 1 update: [cc](https://github.com/rust-lang/cc-rs ).
Updates `cc` from 1.2.22 to 1.2.23
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.22...cc-v1.2.23 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.23
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-05-20 08:07:08 +02:00
Mike Zeller
4339b0fe05
illumos has endian.h
2025-05-15 09:53:45 +02:00
dependabot[bot]
08bb6f44a4
build(deps): bump the cargo group with 6 updates
...
Bumps the cargo group with 6 updates:
| Package | From | To |
| --- | --- | --- |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.21` | `1.2.22` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.37` | `4.5.38` |
| [clap_complete](https://github.com/clap-rs/clap ) | `4.5.48` | `4.5.50` |
| [ctrlc](https://github.com/Detegr/rust-ctrlc ) | `3.4.6` | `3.4.7` |
| [libloading](https://github.com/nagisa/rust_libloading ) | `0.8.6` | `0.8.7` |
| [tempfile](https://github.com/Stebalien/tempfile ) | `3.19.1` | `3.20.0` |
Updates `cc` from 1.2.21 to 1.2.22
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.21...cc-v1.2.22 )
Updates `clap` from 4.5.37 to 4.5.38
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.37...clap_complete-v4.5.38 )
Updates `clap_complete` from 4.5.48 to 4.5.50
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.48...clap_complete-v4.5.50 )
Updates `ctrlc` from 3.4.6 to 3.4.7
- [Release notes](https://github.com/Detegr/rust-ctrlc/releases )
- [Commits](https://github.com/Detegr/rust-ctrlc/compare/3.4.6...3.4.7 )
Updates `libloading` from 0.8.6 to 0.8.7
- [Commits](https://github.com/nagisa/rust_libloading/compare/0.8.6...0.8.7 )
Updates `tempfile` from 3.19.1 to 3.20.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.19.1...v3.20.0 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.22
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.5.38
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-version: 4.5.50
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: ctrlc
dependency-version: 3.4.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: libloading
dependency-version: 0.8.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: tempfile
dependency-version: 3.20.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-05-13 08:12:35 +02:00
Will Lillis
31b9717ca3
fix(lib): return early for empty predicate step slice
2025-05-11 08:57:30 -04:00
dependabot[bot]
52a792384f
build(deps): bump the cargo group with 2 updates
...
Bumps the cargo group with 2 updates: [cc](https://github.com/rust-lang/cc-rs ) and [git2](https://github.com/rust-lang/git2-rs ).
Updates `cc` from 1.2.20 to 1.2.21
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.20...cc-v1.2.21 )
Updates `git2` from 0.20.1 to 0.20.2
- [Changelog](https://github.com/rust-lang/git2-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/git2-rs/compare/git2-0.20.1...git2-0.20.2 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.21
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: git2
dependency-version: 0.20.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-05-06 08:57:38 +00:00
Will Lillis
b1d2b7cfb8
fix(query): correct last_child_step_index in cases where a new step
...
wasn't created.
This fixes an OOB access to `self.steps` when a last child anchor
immediately follows a predicate.
2025-05-03 17:27:37 -04:00
Will Lillis
cc634236b1
fix(rust): address new clippy lint
2025-05-03 19:57:11 +02:00
Will Lillis
91274f47e4
fix(rust): ignore obfuscated_if_else lint
2025-05-03 19:57:11 +02:00
dependabot[bot]
bfc5d1180c
build(deps): bump vite from 6.3.2 to 6.3.4 in /lib/binding_web
...
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 6.3.2 to 6.3.4.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v6.3.4/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 6.3.4
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-05-01 09:18:47 +02:00
Amaan Qureshi
21c658a12c
fix(lib): do not access the alias sequence for the end subtree in ts_subtree_summarize_children
2025-04-28 23:13:13 -04:00
dependabot[bot]
e057299b0d
build(deps): bump the cargo group with 3 updates
...
Bumps the cargo group with 3 updates: [cc](https://github.com/rust-lang/cc-rs ), [clap_complete](https://github.com/clap-rs/clap ) and [toml](https://github.com/toml-rs/toml ).
Updates `cc` from 1.2.19 to 1.2.20
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.19...cc-v1.2.20 )
Updates `clap_complete` from 4.5.47 to 4.5.48
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.47...clap_complete-v4.5.48 )
Updates `toml` from 0.8.20 to 0.8.22
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.20...toml-v0.8.22 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.20
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-version: 4.5.48
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: toml
dependency-version: 0.8.22
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-04-28 19:43:22 -04:00
Amaan Qureshi
3056dc5be4
fix(generate): mark url as a Windows-only dependency
2025-04-28 18:31:09 -04:00
Amaan Qureshi
0191e94226
docs(rust): remove adding cc as a build dependency for consumers
2025-04-28 18:30:45 -04:00
Will Lillis
dcdd5bc372
fix(parse): explicitly move temporaries in the logger callback
...
This fixes problems where these stack-local temporaries are used after their scope ends.
2025-04-28 03:30:05 -04:00
Will Lillis
d0e0e0322c
fix(xtask): properly trim emscripten version at the source ( #4402 )
...
* fix(xtask): properly trim emscripten version at the source
* fix(loader): trim emscripten version in `cargo:rustc-env=` print
2025-04-27 20:59:04 -07:00
Max Brunsfeld
ca7ff033db
Fix wasm build issues introduced by switching to wasi-sdk ( #4407 )
...
* Don't shell out for extracting tar.gz files
* Avoid wasi-sdk adding dependency on libc.so
* Clippy
* Fix -nostdlib flag
2025-04-27 19:42:34 -07:00
Max Brunsfeld
d4d8ed32b3
cli: Compile parsers to wasm using wasi-sdk, not emscripten ( #4393 )
...
* Build wasm modules using wasi-sdk, not emscripten
* Log a warning if --docker is passed
2025-04-24 16:00:09 -07:00
Max Brunsfeld
635c49909c
Add zed config file (enable all cargo features for rust-analyzer)
2025-04-23 16:32:21 -07:00
Tamchuk
70cf2a7a22
docs: fix typo
2025-04-23 08:26:51 -04:00
dependabot[bot]
74e6641afc
build(deps): bump the cargo group with 2 updates
...
Bumps the cargo group with 2 updates: [clap](https://github.com/clap-rs/clap ) and [ureq](https://github.com/algesten/ureq ).
Updates `clap` from 4.5.36 to 4.5.37
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.36...clap_complete-v4.5.37 )
Updates `ureq` from 3.0.10 to 3.0.11
- [Changelog](https://github.com/algesten/ureq/blob/main/CHANGELOG.md )
- [Commits](https://github.com/algesten/ureq/compare/3.0.10...3.0.11 )
---
updated-dependencies:
- dependency-name: clap
dependency-version: 4.5.37
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: ureq
dependency-version: 3.0.11
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 10:13:43 +02:00
Will Lillis
c7475e4bf3
perf(highlight): use BTreeMap over IndexMap for highlight configs
2025-04-20 05:55:37 -04:00
WillLillis
eee41925aa
fix(ci): increase timeouts for flaky tests
2025-04-19 10:59:09 +02:00
Amaan Qureshi
69d553c82a
style(cli): formatting
2025-04-19 01:15:53 -04:00
dependabot[bot]
043e0c65ec
build(deps): bump vite from 6.1.0 to 6.2.6 in /lib/binding_web
...
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 6.1.0 to 6.2.6.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.6/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v6.2.6/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 6.2.6
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-04-18 23:57:56 -04:00
vemoo
4dffb818e2
feat(web): export wasm files to better support bundling use cases
2025-04-18 23:47:27 -04:00
Daniel Jalkut
4514751803
docs(cli): improve documentation for the edits argument when parsing code
2025-04-18 23:45:52 -04:00
Tamir Bahar
27fa1088b9
fix(web): replace dynamic require with import
2025-04-18 23:40:40 -04:00
MichiRecRoom
853ca46899
docs(rust): improve bindings' crate doc
2025-04-18 22:55:59 -04:00
Riley Bruins
21390af2dd
fix(web): correct childWithDescendant() functionality
...
This fix allows for more granular address control when marshalling nodes
across WASM. This is necessary for node methods which accept another
node as a parameter (i.e., `childWithDescendant()`)
2025-04-18 18:11:42 -04:00
Will Lillis
45a281c962
fix(ci): trigger build_wasm workflow when xtask is modified
2025-04-16 18:06:48 -04:00
Will Lillis
c7c1614278
fix(xtask): trim EMSCRIPTEN_TAG arg to docker command in build-wasm
...
command
2025-04-16 18:06:48 -04:00
dependabot[bot]
c085a772cf
build(deps): bump the cargo group with 4 updates
...
Bumps the cargo group with 4 updates: [anyhow](https://github.com/dtolnay/anyhow ), [bstr](https://github.com/BurntSushi/bstr ), [cc](https://github.com/rust-lang/cc-rs ) and [clap](https://github.com/clap-rs/clap ).
Updates `anyhow` from 1.0.97 to 1.0.98
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.97...1.0.98 )
Updates `bstr` from 1.11.3 to 1.12.0
- [Commits](https://github.com/BurntSushi/bstr/compare/1.11.3...1.12.0 )
Updates `cc` from 1.2.18 to 1.2.19
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.18...cc-v1.2.19 )
Updates `clap` from 4.5.35 to 4.5.36
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.35...clap_complete-v4.5.36 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-version: 1.0.98
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: bstr
dependency-version: 1.12.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: cc
dependency-version: 1.2.19
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.5.36
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-04-15 11:38:47 +02:00
Will Lillis
9fdf685dd5
fix(bindings): report wasm store error in rust bindings set_language
2025-04-14 22:15:40 -04:00
Riley Bruins
733d7513af
fix(lib): reset parser options after use
...
**Problem:** After `ts_parser_parse_with_options()`, the parser options
are still stored in the parser object, meaning that a successive call to
`ts_parser_parse()` will actually behave like
`ts_parser_parse_with_options()`, which is not obvious and can have
unintended consequences.
**Solution:** Reset to empty options state after
`ts_parser_parse_with_options()`.
2025-04-14 21:35:40 -04:00
Paul Gey
b341073192
Make highlighting more deterministic when themes are ambiguous
2025-04-10 23:04:00 -04:00
Jon Shea
92c5d3b8e2
fix(rust): clarify error message for non-token reserved words
...
Improve the `NonTokenReservedWord` error message by including the
specific reserved word that was not used as a token.
2025-04-09 18:15:48 -04:00
Jason Boatman
abc5c6bc50
Fix WASI build by not calling a non-existent function. ( #4343 )
2025-04-08 09:33:48 -07:00
Edgar Onghena
52d2865365
chore(generate): add @generated to parser.c header ( #4338 )
...
This makes `parser.c` follow the https://generated.at/ convention for generated files. This potentially allows any compatible IDE to discourage editing it directly.
2025-04-08 10:52:37 +02:00
dependabot[bot]
89b04babfb
ci: bump actions/create-github-app-token in the actions group
...
Bumps the actions group with 1 update: [actions/create-github-app-token](https://github.com/actions/create-github-app-token ).
Updates `actions/create-github-app-token` from 1 to 2
- [Release notes](https://github.com/actions/create-github-app-token/releases )
- [Commits](https://github.com/actions/create-github-app-token/compare/v1...v2 )
---
updated-dependencies:
- dependency-name: actions/create-github-app-token
dependency-version: '2'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 10:18:03 +02:00
dependabot[bot]
755f77231c
build(deps): bump the cargo group across 1 directory with 5 updates
...
Bumps the cargo group with 5 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.17` | `1.2.18` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.32` | `4.5.35` |
| [ctrlc](https://github.com/Detegr/rust-ctrlc ) | `3.4.5` | `3.4.6` |
| [indexmap](https://github.com/indexmap-rs/indexmap ) | `2.8.0` | `2.9.0` |
| [once_cell](https://github.com/matklad/once_cell ) | `1.21.1` | `1.21.3` |
Updates `cc` from 1.2.17 to 1.2.18
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.17...cc-v1.2.18 )
Updates `clap` from 4.5.32 to 4.5.35
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.32...clap_complete-v4.5.35 )
Updates `ctrlc` from 3.4.5 to 3.4.6
- [Release notes](https://github.com/Detegr/rust-ctrlc/releases )
- [Commits](https://github.com/Detegr/rust-ctrlc/compare/3.4.5...3.4.6 )
Updates `indexmap` from 2.8.0 to 2.9.0
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md )
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.8.0...2.9.0 )
Updates `once_cell` from 1.21.1 to 1.21.3
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.21.1...v1.21.3 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.18
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-version: 4.5.35
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: ctrlc
dependency-version: 3.4.6
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: indexmap
dependency-version: 2.9.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: once_cell
dependency-version: 1.21.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 10:17:45 +02:00
Bernardo Sulzbach
3d4d13ea1e
Fix typo of "corresponds"
2025-04-07 18:34:12 -04:00
Peter Hill
4ec8aacaec
docs: Fix link to named-vs-anonymous-nodes section
2025-04-06 10:58:42 -04:00
Will Lillis
0f949168ef
fix(cli): display "N/A" in parse stats where appropriate when no parsing
...
took place
2025-04-06 09:45:50 -04:00
Will Lillis
71941d8bda
fix(highlight): account for multiple rows in highlight testing assertions
2025-04-06 09:45:50 -04:00
WillLillis
521da2b0a7
fix(rust): address new nightly lint for pointer comparisons
2025-03-26 08:58:50 +01:00
Christian Clason
37a9ecd5b7
build(deps): update emscripten to v4.0.5
2025-03-25 15:18:44 +01:00
Simon Willshire
ee8d529552
fix(rust): use core crates for no_std
...
also add `no_std` build to CI
2025-03-25 14:30:32 +01:00
WillLillis
dac6300558
fix(rust): address new clippy lint for pointer comparisons
2025-03-25 13:44:42 +01:00
dependabot[bot]
d05e4ae7ff
build(deps): bump the cargo group across 1 directory with 8 updates
...
Bumps the cargo group with 8 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.16` | `1.2.17` |
| [clap_complete](https://github.com/clap-rs/clap ) | `4.5.46` | `4.5.47` |
| [git2](https://github.com/rust-lang/git2-rs ) | `0.20.0` | `0.20.1` |
| [log](https://github.com/rust-lang/log ) | `0.4.26` | `0.4.27` |
| [once_cell](https://github.com/matklad/once_cell ) | `1.21.0` | `1.21.1` |
| [tempfile](https://github.com/Stebalien/tempfile ) | `3.18.0` | `3.19.1` |
| [widestring](https://github.com/starkat99/widestring-rs ) | `1.1.0` | `1.2.0` |
| [ureq](https://github.com/algesten/ureq ) | `3.0.8` | `3.0.10` |
Updates `cc` from 1.2.16 to 1.2.17
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.16...cc-v1.2.17 )
Updates `clap_complete` from 4.5.46 to 4.5.47
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.46...clap_complete-v4.5.47 )
Updates `git2` from 0.20.0 to 0.20.1
- [Changelog](https://github.com/rust-lang/git2-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/git2-rs/compare/git2-0.20.0...git2-0.20.1 )
Updates `log` from 0.4.26 to 0.4.27
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.26...0.4.27 )
Updates `once_cell` from 1.21.0 to 1.21.1
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.21.0...v1.21.1 )
Updates `tempfile` from 3.18.0 to 3.19.1
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.18.0...v3.19.1 )
Updates `widestring` from 1.1.0 to 1.2.0
- [Release notes](https://github.com/starkat99/widestring-rs/releases )
- [Changelog](https://github.com/VoidStarKat/widestring-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/starkat99/widestring-rs/compare/v1.1.0...v1.2.0 )
Updates `ureq` from 3.0.8 to 3.0.10
- [Changelog](https://github.com/algesten/ureq/blob/main/CHANGELOG.md )
- [Commits](https://github.com/algesten/ureq/compare/3.0.8...3.0.10 )
---
updated-dependencies:
- dependency-name: cc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: git2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: log
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: once_cell
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: tempfile
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: widestring
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: ureq
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-03-25 12:24:08 +01:00
JacobCrabill
e3db212b0b
build.zig.zon: Fix package hashes for Zig 0.14
...
Zig 0.14 changed how package hashes are computed and used, and if the
old package hashes are left, every call to `zig build` will re-download
every package every time. Updating to the new hash format solves this.
2025-03-21 17:33:38 +01:00
WillLillis
f0e7ac2f18
chore(cli): remove deprecated --no-bindings flag from generate command
2025-03-16 11:04:29 +01:00
dependabot[bot]
e08fe3b993
build(deps): bump the cargo group across 1 directory with 21 updates
...
Bumps the cargo group with 20 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [anyhow](https://github.com/dtolnay/anyhow ) | `1.0.95` | `1.0.97` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.10` | `1.2.16` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.27` | `4.5.32` |
| [clap_complete](https://github.com/clap-rs/clap ) | `4.5.42` | `4.5.46` |
| [indexmap](https://github.com/indexmap-rs/indexmap ) | `2.7.1` | `2.8.0` |
| [indoc](https://github.com/dtolnay/indoc ) | `2.0.5` | `2.0.6` |
| [log](https://github.com/rust-lang/log ) | `0.4.25` | `0.4.26` |
| [once_cell](https://github.com/matklad/once_cell ) | `1.20.2` | `1.21.0` |
| [rustc-hash](https://github.com/rust-lang/rustc-hash ) | `2.1.0` | `2.1.1` |
| [semver](https://github.com/dtolnay/semver ) | `1.0.25` | `1.0.26` |
| [serde](https://github.com/serde-rs/serde ) | `1.0.217` | `1.0.219` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.137` | `1.0.140` |
| [smallbitvec](https://github.com/servo/smallbitvec ) | `2.5.3` | `2.6.0` |
| [tempfile](https://github.com/Stebalien/tempfile ) | `3.15.0` | `3.18.0` |
| [thiserror](https://github.com/dtolnay/thiserror ) | `2.0.11` | `2.0.12` |
| [toml](https://github.com/toml-rs/toml ) | `0.8.19` | `0.8.20` |
| [unindent](https://github.com/dtolnay/indoc ) | `0.2.3` | `0.2.4` |
| [wasmparser](https://github.com/bytecodealliance/wasm-tools ) | `0.224.0` | `0.224.1` |
| [webbrowser](https://github.com/amodm/webbrowser-rs ) | `1.0.3` | `1.0.4` |
| [ureq](https://github.com/algesten/ureq ) | `3.0.0` | `3.0.8` |
Updates `anyhow` from 1.0.95 to 1.0.97
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.95...1.0.97 )
Updates `cc` from 1.2.10 to 1.2.16
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.10...cc-v1.2.16 )
Updates `clap` from 4.5.27 to 4.5.32
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.27...clap_complete-v4.5.32 )
Updates `clap_complete` from 4.5.42 to 4.5.46
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.42...clap_complete-v4.5.46 )
Updates `indexmap` from 2.7.1 to 2.8.0
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md )
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.7.1...2.8.0 )
Updates `indoc` from 2.0.5 to 2.0.6
- [Release notes](https://github.com/dtolnay/indoc/releases )
- [Commits](https://github.com/dtolnay/indoc/compare/2.0.5...2.0.6 )
Updates `log` from 0.4.25 to 0.4.26
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.25...0.4.26 )
Updates `once_cell` from 1.20.2 to 1.21.0
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.20.2...v1.21.0 )
Updates `rustc-hash` from 2.1.0 to 2.1.1
- [Changelog](https://github.com/rust-lang/rustc-hash/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/rustc-hash/compare/v2.1.0...v2.1.1 )
Updates `semver` from 1.0.25 to 1.0.26
- [Release notes](https://github.com/dtolnay/semver/releases )
- [Commits](https://github.com/dtolnay/semver/compare/1.0.25...1.0.26 )
Updates `serde` from 1.0.217 to 1.0.219
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.217...v1.0.219 )
Updates `serde_derive` from 1.0.217 to 1.0.219
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.217...v1.0.219 )
Updates `serde_json` from 1.0.137 to 1.0.140
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.137...v1.0.140 )
Updates `smallbitvec` from 2.5.3 to 2.6.0
- [Release notes](https://github.com/servo/smallbitvec/releases )
- [Commits](https://github.com/servo/smallbitvec/compare/v2.5.3...v2.6.0 )
Updates `tempfile` from 3.15.0 to 3.18.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.15.0...v3.18.0 )
Updates `thiserror` from 2.0.11 to 2.0.12
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/2.0.11...2.0.12 )
Updates `toml` from 0.8.19 to 0.8.20
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.19...toml-v0.8.20 )
Updates `unindent` from 0.2.3 to 0.2.4
- [Release notes](https://github.com/dtolnay/indoc/releases )
- [Commits](https://github.com/dtolnay/indoc/compare/0.2.3...0.2.4 )
Updates `wasmparser` from 0.224.0 to 0.224.1
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/commits )
Updates `webbrowser` from 1.0.3 to 1.0.4
- [Release notes](https://github.com/amodm/webbrowser-rs/releases )
- [Changelog](https://github.com/amodm/webbrowser-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/amodm/webbrowser-rs/compare/v1.0.3...v1.0.4 )
Updates `ureq` from 3.0.0 to 3.0.8
- [Changelog](https://github.com/algesten/ureq/blob/main/CHANGELOG.md )
- [Commits](https://github.com/algesten/ureq/compare/3.0.0...3.0.8 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: cc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: indexmap
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: indoc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: log
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: once_cell
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: rustc-hash
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: semver
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_derive
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: smallbitvec
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: tempfile
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: toml
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: unindent
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: wasmparser
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: webbrowser
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: ureq
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-03-15 16:43:49 +01:00
Tamir Bahar
a380e1a259
refactor(web): change return types to Node[] in child-related methods
2025-03-15 09:09:31 -04:00
Peter Oliver
17471bdfcc
fix(build): make install shouldn’t fail when a parser bundles no queries ( #4284 )
2025-03-14 09:37:51 +01:00
WillLillis
5985690d45
fix(xtask): error if new version supplied to bump-version is less than
...
or equal to current version
2025-03-14 09:37:25 +01:00
Christian Clason
07a1b7fc00
fix(build): bump version to 0.26.0
...
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 12s
CI / checks (push) Has been cancelled
Check WASM Exports / check-wasm-exports (push) Has been cancelled
After a release, `master` branch should be bumped to the next _minor_ version.
2025-03-12 14:52:09 +01:00
dependabot[bot]
12aff698b9
build(deps): bump emscripten to 4.0.4
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
2025-03-12 09:30:11 +00:00
dependabot[bot]
276accc210
build(deps): bump ring from 0.17.8 to 0.17.13
...
Bumps [ring](https://github.com/briansmith/ring ) from 0.17.8 to 0.17.13.
- [Changelog](https://github.com/briansmith/ring/blob/main/RELEASES.md )
- [Commits](https://github.com/briansmith/ring/commits )
---
updated-dependencies:
- dependency-name: ring
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-03-12 09:30:11 +00:00
Riley Bruins
cc3994928c
feat(lib): quote invalid nodes, fields, and captures
2025-03-12 10:28:57 +01:00
WillLillis
efd212ee46
fix(cli): properly escape invisible characters in parse error output
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
2025-03-11 17:27:12 -04:00
Jon Shea
ec3a889758
fix(docs): update test command flag from -f to -i
...
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
CI / checks (push) Has been cancelled
Deploy Docs / deploy-docs (push) Has been cancelled
The `-f` flag on `tree-sitter test` seems to have been removed or
replaced with a `-i, --include` flag. This PR updates the "Writing Tests"
page to reflect this change.
2025-03-10 11:18:59 -04:00
Niklas Koll
1850762118
feat(build): update build.zig.zon for zig 0.14
2025-03-10 15:56:41 +01:00
June Gschwantner
0b28226615
docs(bindings): Add "Using WASM Grammar files" section to binding_rust ( #4235 )
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
Check WASM Exports / check-wasm-exports (push) Has been cancelled
2025-03-06 14:15:21 -08:00
NOT XVilka
a00fab7dc4
fix(lib): remove duplicate TSLanguageMetadata typedef ( #4268 )
2025-03-06 14:14:25 -08:00
WillLillis
11071ed682
fix(rust): adapt to new nightly lint
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
2025-03-06 09:32:21 +01:00
Max Brunsfeld
066fd77d39
Fix cases where error recovery could infinite loop ( #4257 )
...
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
CI / checks (push) Has been cancelled
* Rename corpus test functions to allow easy filtering by language
* Use usize for seed argument
* Avoid retaining useless stack versions when reductions merge
We found this problem when debugging an infinite loop that happened
during error recovery when using the Zig grammar. The large number of
unnecessary paused stack versions were preventing the correct recovery
strategy from being tried.
* Fix leaked lookahead token when reduction results in a merged stack
* Enable running PHP tests in CI
* Fix possible infinite loop during error recovery at EOF
* Account for external scanner state changes when detecting changed ranges in subtrees
2025-03-04 13:50:56 -08:00
polazarus
8138dba800
fix(generate): mark TSCharacterRange as static ( #4255 )
...
CI / checks (push) Waiting to run
CI / sanitize (push) Waiting to run
CI / build (push) Waiting to run
Problem: Linking different parsers into one executable fails due to duplicate symbols.
Solution: Mark `TSCharacterRange` as `static` when generating parsers.
fixes #4209
2025-03-04 15:26:13 +01:00
Yuri Astrakhan
b749c02eb5
Mark all format-like macros for Clippy
...
CI / checks (push) Waiting to run
CI / sanitize (push) Waiting to run
CI / build (push) Waiting to run
Deploy Docs / deploy-docs (push) Has been cancelled
See https://doc.rust-lang.org/nightly/clippy/attribs.html#clippyformat_args
Ensure that usage of the macros with `format!`-like parameters will be validated by Clippy
2025-03-03 02:16:23 -05:00
WillLillis
1fdd1d250c
ci: separate nightly lints to separate job
2025-03-02 16:37:03 -05:00
WillLillis
998fb34d15
fix(test): update expected tree-sitter-rust supertypes
2025-03-02 16:37:03 -05:00
WillLillis
cb30ec5b17
fix(rust): adapt to some new nightly lints
2025-03-02 16:37:03 -05:00
Andrew Dunbar
ab7eb70a3c
typo: but is only works → but it only works ( #4242 )
2025-02-26 09:29:27 -08:00
Will Lillis
3b67861def
fix(wasm): restore passing in ERROR to descendantsOfType ( #4226 )
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 14s
CI / checks (push) Has been cancelled
2025-02-19 14:47:10 -08:00
Max Brunsfeld
b26b7f8d62
Decrease the MSRV for the tree-sitter-language crate ( #4221 )
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 14s
CI / checks (push) Has been cancelled
2025-02-17 18:52:57 -08:00
Max Brunsfeld
2bd400dcee
Reset result_symbol field of lexer in wasm memory in between invocations ( #4218 )
2025-02-17 17:36:46 -08:00
Max Brunsfeld
dedcc5255a
Ignore external tokens that are zero-length and extra ( #4213 )
...
Co-authored-by: Anthony <anthony@zed.dev>
2025-02-17 15:07:44 -08:00
Max Brunsfeld
14b8ead412
Fix crash when loading languages w/ old ABI via wasm ( #4210 )
2025-02-17 13:56:53 -08:00
Antonin Décimo
f0571b1e33
feat: Windows support using MinGW-w64 ( #4201 )
...
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 14s
CI / checks (push) Has been cancelled
Building tree-sitter on Windows within a Cygwin or MSYS2 environment
for MinGW-w64 targets should work. As there's no configure-like step,
the tools have to be specified with:
make CC=x86_64-w64-mingw32-gcc \
AR=x86_64-w64-mingw32-ar \
STRIP=x86_64-w64-mingw32-strip
Useful reference:
[How to build and use DLLs on Windows](https://nullprogram.com/blog/2021/05/31/ )
This commit doesn't tag public functions with dllexport or
dllimport. This results in exporting non-static functions visible
between translation units, and generating slightly less efficient code
for calling exported functions from the DLL.
This commit doesn't include support to build libtree-sitter with MSVC or
clang-cl, but generates a libtree-sitter.lib file for MSVC/clang-cl
consumers.
2025-02-12 16:31:06 -08:00
Amaan Qureshi
8e79929cb8
ci: remove benchmark step
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 14s
Deploy Docs / deploy-docs (push) Has been cancelled
We don't actually use this data, it runs without a purpose
2025-02-11 22:56:50 -05:00
Amaan Qureshi
0a33135483
ci: rename web files, and upload a tarball for web-tree-sitter assets
2025-02-11 22:56:50 -05:00
Amaan Qureshi
a40265cbeb
refactor(web): rename tree-sitter.js to web-tree-sitter.js
...
This is not breaking for consumers of the web bindings, nor the
playground as both filenames will be kept in the .github.io repo
2025-02-11 22:56:50 -05:00
Amaan Qureshi
74d7ca8582
fix(rust): adapt to new clippy lints
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 14s
CI / checks (push) Has been cancelled
2025-02-08 13:15:56 -05:00
Amaan Qureshi
1a80a1f413
fix: add generate crate to workspace members
2025-02-08 13:15:56 -05:00
Roberto Huertas
f95e0e3a56
fix(web): provide type in the exports
...
When using TypeScript projects using other module settings than CommonJs, the types were not correctly exposed, and the compilation failed.
This adds the types path to the exports so compilation works for `module: NodeNext` and other variants.
2025-02-08 12:47:17 -05:00
Thomas Klausner
14647b2a38
build: add a comment explaining why we undef _POSIX_C_SOURCE
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 13s
CI / checks (push) Has been cancelled
2025-02-02 17:14:28 -05:00
Thomas Klausner
5311904619
build: fix compilation on NetBSD a different way
2025-02-02 17:14:28 -05:00
Thomas Klausner
60b76c7834
Revert "build: do not define _POSIX_C_SOURCE on NetBSD"
...
This reverts commit 54921453da .
2025-02-02 17:14:28 -05:00
Thomas Klausner
2bf04d1f04
build: do not define _POSIX_C_SOURCE on NetBSD
...
It leads to missing symbols, see #4180 .
2025-02-02 17:14:28 -05:00
Amaan Qureshi
f5afe475de
build: bump version to 0.25.1
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 14s
Deploy Docs / deploy-docs (push) Has been cancelled
Check WASM Exports / check-wasm-exports (push) Has been cancelled
2025-02-02 02:07:36 -05:00
Amaan Qureshi
f20d4b0897
docs: correct build steps for WASM files
2025-02-02 02:07:36 -05:00
Amaan Qureshi
05d443a019
style(rust): correct doc comments
2025-02-02 02:07:36 -05:00
Amaan Qureshi
eed662df98
fix(bindings): correct Zig bindings to expose a language function
...
Instead of having users declare the extern function themselves, they can
pass in the language to `Language.create` in the zig bindings. If they
really want, they can always opt into the `extern fn tree_sitter_LANG()
*const ts.Language` approach.
2025-02-02 02:07:36 -05:00
Riley Bruins
9ad096ef22
fix(lib): prevent finished_tree assertion failure
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 14s
**Problem:** When resetting the parser during subtree balancing, an
error is thrown:
```
parser.c:2198: ts_parser_parse: Assertion `self->finished_tree.ptr' failed.
```
**Solution:** Reset `canceled_balancing` to false in
`ts_parser_reset()`.
2025-02-01 16:19:14 -05:00
Amaan Qureshi
ac8a4ba80e
ci: use ubuntu-22.04 for x64 builds
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 14s
2025-02-01 14:27:58 -05:00
ObserverOfTime
c2221f2732
feat(cli): specify abi version via env var
2025-02-01 13:57:53 -05:00
Amaan Qureshi
16aaed78ae
build: update authors
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 13s
2025-01-31 21:11:10 -05:00
Amaan Qureshi
a115e515ff
feat(web): include C source files for debugging
2025-01-31 20:41:11 -05:00
Amaan Qureshi
060e69e671
build(web): relocate source files in WASM sourcemap
2025-01-31 20:41:11 -05:00
Amaan Qureshi
40dfe6bd51
build(web): bump deps
2025-01-31 20:41:11 -05:00
Amaan Qureshi
dc64bb5395
chore: adapt to latest clippy lints
2025-01-31 20:41:11 -05:00
ObserverOfTime
51acdf9723
feat(bindings)!: update swift bindings
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 13s
2025-01-31 10:16:01 -05:00
ObserverOfTime
1b3a9a4563
chore(bindings): include license file in crate
2025-01-31 16:22:25 +02:00
Amaan Qureshi
304e56850f
chore(web): update type definitions
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 14s
CI / checks (push) Has been cancelled
2025-01-28 20:59:37 -05:00
Amaan Qureshi
9d62f17bc4
fix(web): correct doc comment
2025-01-28 20:59:37 -05:00
ObserverOfTime
032af925fc
build(cli): explicitly include files
2025-01-28 19:30:43 -05:00
Gabriel Holodak
f5e9680b75
fix(cli): propagate error flag in parse summary
2025-01-28 18:17:31 -05:00
Amaan Qureshi
9515be4fc1
fix(web): update check-artifacts script
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 14s
CI / checks (push) Has been cancelled
2025-01-26 14:39:01 -05:00
Amaan Qureshi
2cf18f5ac2
build: bump dependencies
2025-01-26 14:15:01 -05:00
Amaan Qureshi
56a6df0c57
build: bump tree-sitter-language to 0.1.4
2025-01-26 14:15:01 -05:00
Amaan Qureshi
67619dab5c
ci(release): correct build steps for web-tree-sitter
2025-01-26 14:15:01 -05:00
Amaan Qureshi
5546862bb7
fix(web): correct debug file location
2025-01-26 14:15:01 -05:00
Amaan Qureshi
959f096a89
feat(generate): defer to ABI 14 if tree-sitter.json doesn't exist, rather than hard failing
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 14s
2025-01-26 13:12:58 -05:00
Amaan Qureshi
016dd7afbf
feat(bindings): use cc 1.2 for Rust
2025-01-26 13:12:58 -05:00
Christian Clason
67cc0a9f58
build(deps): bump wasmtime-c-api to v29.0.1
2025-01-26 12:45:15 -05:00
Amaan Qureshi
4940d2c29b
fix(cli): correct traversal behavior for finding error nodes
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 14s
2025-01-26 01:10:01 -05:00
Amaan Qureshi
4b6723192e
refactor(cli): replace embedded xterm colors file with ansi_colours
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 14s
Deploy Docs / deploy-docs (push) Has been cancelled
2025-01-25 17:20:18 -05:00
Amaan Qureshi
8f3ceb471a
docs: add missing summary element
2025-01-25 14:08:56 -05:00
Christian Clason
36f5f7918f
fix(endian): rely on system headers where possible
...
Problem: Macros (re)defined in `endian.h` conflict with system headers
on FreeBSD (at least).
Solution: Rely on system `endian.h` on OpenBSD, FreeBSD, NetBSD, and
DragonFly
Ref. https://github.com/mikepb/endian.h/issues/4
2025-01-25 13:28:46 -05:00
Amaan Qureshi
c01bf6ea4a
fix(cli): minor discrepancies with pretty printer
CI / checks (push) Waiting to run
Deploy Docs / deploy-docs (push) Waiting to run
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 13s
Check Bindgen Output / check-bindgen (push) Has been cancelled
Check WASM Exports / check-wasm-exports (push) Has been cancelled
2025-01-25 03:47:26 -05:00
ObserverOfTime
5cfeba9c0d
feat(bindings): add opt-in zig bindings
2025-01-25 03:47:19 -05:00
WillLillis
3074c0adf2
docs: add guidance about node naming conventions
2025-01-25 03:46:33 -05:00
Amaan Qureshi
46f8d1267c
feat(init): add a title field to grammars
2025-01-25 03:20:43 -05:00
Amaan Qureshi
4820d50336
fix(init): handle parser name replacements better when a kebab-case name is expected
2025-01-25 03:20:43 -05:00
Amaan Qureshi
bde94aed4d
feat(init): add a class-name field to grammars
2025-01-25 03:20:43 -05:00
Amaan Qureshi
6dbcfdf282
feat(init): add an optional funding field
2025-01-25 03:20:43 -05:00
Amaan Qureshi
4ab78ae00d
fix(init): don't prepend the default filetype with a .
2025-01-25 03:20:43 -05:00
Amaan Qureshi
a70b2fee4b
feat(init): allow dashes in scopes
2025-01-25 03:20:43 -05:00
Amaan Qureshi
aa900bf6ed
ci: go back to emulating linux arm64
...
These runners segfault when running basic rustc commands, we're not
using these till GH gets it together.
2025-01-25 03:20:43 -05:00
Allan Clements
cda634a1c4
feat: add error information in the progress callback
...
This allows users to bail parsing if an error was *definitely* detected
using the progress callback, as all possible stack versions have a
non-zero error cost.
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2025-01-25 02:47:39 -05:00
Amaan Qureshi
ca087d2c07
docs: add documentation on updating and publishing grammars
2025-01-25 01:14:30 -05:00
Amaan Qureshi
8bb1448a6f
feat: add the semantic version to TSLanguage, and expose an API for retrieving it
2025-01-25 01:14:30 -05:00
Amaan Qureshi
f0222107b8
chore: update FUNDING.yml
2025-01-25 00:27:40 -05:00
dependabot[bot]
9003b883f1
build(deps-dev): bump vite from 6.0.7 to 6.0.11 in /lib/binding_web
...
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 6.0.7 to 6.0.11.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v6.0.11/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-25 00:18:35 -05:00
Amaan Qureshi
dc8a9cc4f2
chore: add FUNDING.yml
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 14s
CI / checks (push) Has been cancelled
2025-01-23 16:38:43 -05:00
Amaan Qureshi
e1eb2fdbca
refactor(web): break apart the logic for constructing a query
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 13s
2025-01-23 00:43:27 -05:00
Amaan Qureshi
b5894fac95
feat(web): use custom error type for query errors
2025-01-23 00:43:27 -05:00
Amaan Qureshi
6c3eb760a9
feat: improve PredicateStep types
2025-01-23 00:43:27 -05:00
Amaan Qureshi
a76934dda0
test: update tests
2025-01-23 00:43:27 -05:00
Amaan Qureshi
a18ae03e0b
docs(web): update type definitions
2025-01-23 00:43:27 -05:00
Amaan Qureshi
e901716ebd
refactor(web)!: deprecate Language.query in favor of new Query
2025-01-23 00:43:27 -05:00
Amaan Qureshi
e874d2d8f8
feat: add a patternIndex field to QueryCapture
...
This lets users look up the predicates associated with a given
`QueryCapture`, by using the `patternIndex` field and calling
`predicatesForPattern`
2025-01-23 00:43:27 -05:00
Amaan Qureshi
d60c6f163d
refactor(web)!: rename pattern to patternIndex in QueryMatch
...
This aligns with other bindings
2025-01-23 00:43:27 -05:00
Amaan Qureshi
e3ac504e86
refactor(web): move CaptureQuantifier definition
2025-01-23 00:43:27 -05:00
Amaan Qureshi
58662417a6
fix(web): only export public types
...
This avoids exporting extra unnecessary stuff in the final JS file
2025-01-23 00:43:27 -05:00
Yuri Astrakhan
3e7721e554
chore: a few more minor lints
2025-01-23 00:10:16 -05:00
Amaan Qureshi
3e72969ce4
fix(playground): work around lack of module support in mdbook
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 13s
Deploy Docs / deploy-docs (push) Has been cancelled
2025-01-22 04:09:08 -05:00
Amaan Qureshi
79244b5815
fix(web): correct builds for CJS
CI / checks (push) Waiting to run
Deploy Docs / deploy-docs (push) Waiting to run
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 13s
2025-01-21 12:36:15 -05:00
Amaan Qureshi
f6a943a1ad
docs(web): update README and add CONTRIBUTING docs
2025-01-21 12:36:15 -05:00
Amaan Qureshi
692332ed1c
feat!: update playground with new web bindings
2025-01-21 12:36:15 -05:00
Amaan Qureshi
0dba35c30f
docs(web): update docs
2025-01-21 12:36:15 -05:00
Amaan Qureshi
1f66d156b5
test: update tests
2025-01-21 12:36:15 -05:00
Amaan Qureshi
09cb4c5729
feat(web): document the API
2025-01-21 12:36:15 -05:00
Amaan Qureshi
a4b20c1c56
feat: publish both CJS and ESM files
...
This way, users can pick whichever one works for their needs
2025-01-21 12:36:15 -05:00
Amaan Qureshi
10e6ecf162
feat: begin autogenerating web-tree-sitter.d.ts
2025-01-21 12:36:15 -05:00
Amaan Qureshi
be7716dfa7
feat(web)!: use the WASM module in the bindings, and not the other way around
...
Parser is no longer the default export, but you *must* call
`Parser.init()` before doing anything still
2025-01-21 12:36:15 -05:00
Amaan Qureshi
b1e39d2dba
fix(xtask): adapt check-wasm-exports to web changes
2025-01-21 12:36:15 -05:00
Amaan Qureshi
25e6de4a0a
docs(web): update process on fetching WASM fiels
2025-01-21 12:36:15 -05:00
Amaan Qureshi
11410b5a8e
ci: add linting step for web-tree-sitter
2025-01-21 12:36:15 -05:00
Amaan Qureshi
169d7ad57f
refactor: rewrite scripts in typescript
2025-01-21 12:36:15 -05:00
Amaan Qureshi
31ceb99603
feat: add and apply eslint config
2025-01-21 12:36:15 -05:00
Amaan Qureshi
2cae67892e
feat(web)!: rewrite the library in TypeScript
2025-01-21 12:36:15 -05:00
Amaan Qureshi
07a86b1729
build(web): use files in package.json instead of .npmignore
2025-01-21 12:36:15 -05:00
Amaan Qureshi
6941497c7a
test: improve test coverage
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 11s
CI / build (push) Failing after 13s
2025-01-21 01:17:03 -05:00
Amaan Qureshi
6e88672dac
chore: cleanup unused code
2025-01-21 01:17:03 -05:00
Yuri Astrakhan
9dbe165296
chore: a few minor lints
...
* do not use `&` for the format args as it cannot (yet) be optimized by the compiler
* a few format inlining
2025-01-21 00:57:58 -05:00
Amaan Qureshi
c8353a52af
fix(lib): don't always clear the tree stack
...
Only do so if the parser is not resuming balancing
2025-01-21 00:31:34 -05:00
Yuri Astrakhan
48059b72a8
feat: remove lazy_static in favor of LazyLock
...
This switches to the built-in `std::sync::LazyLock`
2025-01-21 00:21:35 -05:00
Amaan Qureshi
f23a52f410
feat(tags): implement Send + Sync for TagsConfiguration
...
This is sound because the pointers point to data owned by the struct
itself
2025-01-21 00:21:35 -05:00
Amaan Qureshi
27bc78698d
feat(lib): implement Send + Sync for WasmStore
2025-01-21 00:21:35 -05:00
Amaan Qureshi
9365586cc3
feat: allow parser balancing to be cancellable
2025-01-20 23:52:19 -05:00
Will Lillis
f3259288b3
feat(xtask): add success message for wasm watchers
2025-01-20 23:28:10 -05:00
dependabot[bot]
0e226561b1
build(deps): bump emscripten to 4.0.1
2025-01-20 23:27:25 -05:00
dependabot[bot]
5c776a4e62
build(deps): bump the cargo group with 7 updates
...
Bumps the cargo group with 7 updates:
| Package | From | To |
| --- | --- | --- |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.9` | `1.2.10` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.26` | `4.5.27` |
| [indexmap](https://github.com/indexmap-rs/indexmap ) | `2.7.0` | `2.7.1` |
| [log](https://github.com/rust-lang/log ) | `0.4.22` | `0.4.25` |
| [semver](https://github.com/dtolnay/semver ) | `1.0.24` | `1.0.25` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.135` | `1.0.137` |
| [similar](https://github.com/mitsuhiko/similar ) | `2.6.0` | `2.7.0` |
Updates `cc` from 1.2.9 to 1.2.10
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.9...cc-v1.2.10 )
Updates `clap` from 4.5.26 to 4.5.27
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.26...clap_complete-v4.5.27 )
Updates `indexmap` from 2.7.0 to 2.7.1
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/master/RELEASES.md )
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.7.0...2.7.1 )
Updates `log` from 0.4.22 to 0.4.25
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.22...0.4.25 )
Updates `semver` from 1.0.24 to 1.0.25
- [Release notes](https://github.com/dtolnay/semver/releases )
- [Commits](https://github.com/dtolnay/semver/compare/1.0.24...1.0.25 )
Updates `serde_json` from 1.0.135 to 1.0.137
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.135...v1.0.137 )
Updates `similar` from 2.6.0 to 2.7.0
- [Changelog](https://github.com/mitsuhiko/similar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/mitsuhiko/similar/compare/2.6.0...2.7.0 )
---
updated-dependencies:
- dependency-name: cc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: indexmap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: log
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: semver
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: similar
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 23:27:25 -05:00
Scorg
40eb26e580
build(bindings): move header to tree_sitter subdirectory
...
CI / checks (push) Waiting to run
Deploy Docs / deploy-docs (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 14s
This patch allows users to include the parser by the same path from
local build as well as installed location. Previously it was not
possible to include the header prior to installing the built parser.
2025-01-20 13:17:24 -05:00
Amaan Qureshi
a633a06bb4
ci: add arm ubuntu runner, & use latest runners
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 16s
2025-01-19 22:13:09 -05:00
Yusuf Raji
1c9a2fa455
docs: fix broken link
CI / checks (push) Waiting to run
Deploy Docs / deploy-docs (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 16s
2025-01-19 16:27:36 -05:00
ObserverOfTime
a9dbb7257c
feat(bindings): support free-threaded python build
2025-01-19 12:45:08 -05:00
ObserverOfTime
7bf51ae08a
feat(bindings): drop python 3.9 support
2025-01-19 12:45:08 -05:00
Amaan Qureshi
29e6717c31
fix(lib): temporarily allow lint with false positives
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 16s
CI / checks (push) Has been cancelled
2025-01-17 20:41:06 -05:00
dependabot[bot]
a2f8daf38d
build(deps): bump the cargo group with 2 updates
...
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 15s
CI / checks (push) Has been cancelled
Bumps the cargo group with 2 updates: [notify](https://github.com/notify-rs/notify ) and [notify-debouncer-full](https://github.com/notify-rs/notify ).
Updates `notify` from 7.0.0 to 8.0.0
- [Release notes](https://github.com/notify-rs/notify/releases )
- [Changelog](https://github.com/notify-rs/notify/blob/main/CHANGELOG.md )
- [Commits](https://github.com/notify-rs/notify/compare/notify-7.0.0...notify-8.0.0 )
Updates `notify-debouncer-full` from 0.4.0 to 0.5.0
- [Release notes](https://github.com/notify-rs/notify/releases )
- [Changelog](https://github.com/notify-rs/notify/blob/main/CHANGELOG.md )
- [Commits](https://github.com/notify-rs/notify/compare/debouncer-full-0.4.0...debouncer-full-0.5.0 )
---
updated-dependencies:
- dependency-name: notify
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: cargo
- dependency-name: notify-debouncer-full
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-16 01:30:21 -05:00
WillLillis
3a85d4d5f3
feat(cli): improve readability of parse debug output
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 16s
CI / checks (push) Has been cancelled
2025-01-13 01:13:31 -05:00
WillLillis
23e0891cd5
fix(cli): improve error message for nonterminals used in token rule
2025-01-13 01:12:20 -05:00
Amaan Qureshi
24f51518d1
feat(cli)!: remove migration code for tree-sitter.json
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 16s
Check Bindgen Output / check-bindgen (push) Has been cancelled
Check WASM Exports / check-wasm-exports (push) Has been cancelled
2025-01-12 22:11:30 -05:00
Amaan Qureshi
344a88c4fb
feat(lib)!: remove ts_node_child_containing_descendant
...
It was marked deprecated in 0.24
2025-01-12 22:11:30 -05:00
Amaan Qureshi
810d99d972
build(cliff): rename commit.github to commit.remote
...
`commit.github` & friends are marked as deprecated
2025-01-12 18:41:25 -05:00
Amaan Qureshi
b26adf4265
feat(generate): add an extra field for extra nodes in node-types.json
2025-01-12 18:41:25 -05:00
Amaan Qureshi
f941277a9d
docs(lib): improve documentation on ts_tree_get_changed_ranges and ts_query_cursor_set_{byte,point}_range
2025-01-12 14:56:22 -05:00
Amaan Qureshi
3414bbd48e
ci(release): use the ref name for the release tag
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 15s
2025-01-12 13:41:59 -05:00
Amaan Qureshi
e389d54868
chore: readd skipped test
2025-01-12 13:04:10 -05:00
Amaan Qureshi
5de314833f
feat(query): structurally verify supertype queries
2025-01-12 13:04:10 -05:00
Amaan Qureshi
ac8bb1b777
build: bump other crates' MSRV to 1.82
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 14s
2025-01-12 04:47:59 -05:00
Amaan Qureshi
26d4b19006
build(rust): bump the lib's MSRV to 1.76
2025-01-12 04:47:59 -05:00
Amaan Qureshi
52ef2992aa
feat(generate): properly filter out unused rules
2025-01-12 04:47:59 -05:00
Amaan Qureshi
9d9c76e693
feat(generate): explicitly disallow non-terminals in non-terminals
2025-01-12 04:47:59 -05:00
WillLillis
d65a74a667
fix(cli): correct test update option
2025-01-12 01:44:58 -05:00
WillLillis
ea9c85fb94
fix(cli): fix error display, considering structured data returned from
...
generate command
2025-01-12 01:44:51 -05:00
WillLillis
dcfc95e563
fix(cli): only remove test input's trailing '\r' if running on windows
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
platform
2025-01-11 17:52:54 -05:00
WillLillis
cd6e766365
fix(wasm): allow passing in ERROR in descendantsOfType
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 14s
Check Bindgen Output / check-bindgen (push) Has been cancelled
Deploy Docs / deploy-docs (push) Has been cancelled
Check WASM Exports / check-wasm-exports (push) Has been cancelled
2025-01-11 03:00:20 -05:00
Amaan Qureshi
95fd37ecf8
docs: add information about the scoping of cursors
2025-01-11 02:33:48 -05:00
WillLillis
f47319212b
feat(cli): allow test subcommand to include/exclude by corpus test file names
2025-01-11 00:58:26 -05:00
Amaan Qureshi
1695e454a7
docs: improve docs around lexical precedence
2025-01-10 23:37:16 -05:00
Amaan Qureshi
5a2c5ed865
docs: improve docs for contributing to docs
2025-01-10 22:57:54 -05:00
Amaan Qureshi
8ab351ba32
docs: add example usage of conflicts
2025-01-10 22:36:12 -05:00
Amaan Qureshi
7668192a49
docs: clarify that the optional fields are a function that take in the grammar object
2025-01-10 22:36:12 -05:00
Amaan Qureshi
7953aba070
fix(lib): use inclusive range check for non-empty nodes in next sibling computation
2025-01-10 22:00:33 -05:00
WillLillis
329dcc92a1
fix(rust): adapt to a few new nightly lints
2025-01-10 22:00:23 -05:00
Emmanuel Ferdman
17017da7a6
docs: update playground references
...
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2025-01-10 21:57:17 -05:00
Amaan Qureshi
0195bbf1b4
fix(lib): avoid OOB access when updating alternative steps
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
2025-01-10 19:41:43 -05:00
Amaan Qureshi
e58b1faac1
docs: add note on not duplicating the word token rule
CI / checks (push) Waiting to run
Deploy Docs / deploy-docs (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 16s
2025-01-10 02:58:38 -05:00
Amaan Qureshi
d38aa596e1
fix(generate): improve error message when a duplicate token is used as the word token
2025-01-10 02:58:38 -05:00
Amaan Qureshi
4d6740980c
fix(generate): improve display of token sets with escape characters
2025-01-10 02:58:38 -05:00
Amaan Qureshi
b75ca0b957
ci: update docs workflow
2025-01-10 02:58:38 -05:00
Amaan Qureshi
21d74b8482
docs: add mdbook-admonish for better tooltips
2025-01-10 02:58:38 -05:00
WillLillis
c8bd78a29c
feat(playground): provide colored highlight for captures in code editor
2025-01-10 00:45:08 -05:00
WillLillis
2c6f70cc57
feat(xtask): add --watch option for build-wasm and
...
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
CI / checks (push) Has been cancelled
`check-wasm-exports` xtask commands
2025-01-08 13:27:20 -05:00
Guilherme Soares
207ef9796e
fix(wasm): check docker presence without arguments
2025-01-08 13:27:02 -05:00
WillLillis
cbf960ff20
fix(cli): remove double print of generate errors
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 15s
2025-01-08 01:13:22 -05:00
dependabot[bot]
5a854e6030
build(deps): bump cc from 1.2.6 to 1.2.7 in the cargo group
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 15s
Bumps the cargo group with 1 update: [cc](https://github.com/rust-lang/cc-rs ).
Updates `cc` from 1.2.6 to 1.2.7
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.6...cc-v1.2.7 )
---
updated-dependencies:
- dependency-name: cc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-07 08:15:58 -05:00
Amaan Qureshi
68e707eb4f
feat: support passing in a Rust regex in the grammar dsl
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 16s
Deploy Docs / deploy-docs (push) Has been cancelled
2025-01-06 20:52:19 -05:00
Damien Guard
4170f71dbc
feat(generate): add .exp and .lib files to gitignore template
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
On Windows, tree-sitter-cli creates parser.exp and parser.lib so ideally we'd exclude those automatically.
2025-01-06 16:13:39 -05:00
Amaan Qureshi
ba19fe31be
test: ignore flaky test for now
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
We'll re-enable post-release & when grammars are updated
2025-01-06 01:55:15 -05:00
Amaan Qureshi
2814c00faa
fix(web): correct getExtent
...
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-01-06 01:55:15 -05:00
Amaan Qureshi
45fa028201
feat(web): add missing API functions
...
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-01-06 01:55:15 -05:00
WillLillis
dcdd6ce2d2
feat(xtask): check wasm exports
2025-01-06 01:55:15 -05:00
Lucas Marçal
aea3a4720a
fix(endian): support POSIX mode on Apple platforms
2025-01-06 01:13:04 -05:00
Lucas Marçal
28d5272e71
build(swift): include all source files
2025-01-06 01:13:04 -05:00
WillLillis
767b5486c6
docs: clarify data returned by QueryCaptures during iteration
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
2025-01-05 03:01:36 -05:00
WillLillis
867433afd7
feat(rust): use thiserror for generate crate
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 16s
Check Bindgen Output / check-bindgen (push) Has been cancelled
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2025-01-05 00:27:12 -05:00
WillLillis
5a825a0930
feat(cli): add json summary of parsing
2025-01-05 00:27:12 -05:00
Amaan Qureshi
ef39298342
feat(wasm): add Supertype API
2025-01-05 00:14:09 -05:00
Riley Bruins
86b507a842
ci: regenerate fixtures upon changes to parser.h, alloc.h, array.h
...
This makes sense because the files are moved to `src/tree_sitter` upon
generation
2025-01-05 00:14:09 -05:00
Riley Bruins
19482834bd
feat: add Supertype API
...
Introduces a new function that takes in a supertype symbol and returns
all associated subtypes. Can be used by query.c to give better errors
for invalid subtypes, as well as downstream applications like the query
LSP to give better diagnostics.
2025-01-05 00:14:09 -05:00
WillLillis
07c08432ca
fix(rust): use PathBuf for --query-paths highlight option
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 13s
2025-01-04 04:12:24 -05:00
WillLillis
619d347f95
chore: fix doc comment
2025-01-04 04:12:24 -05:00
Amaan Qureshi
efc51a596c
fix(lib): don't consider unfinished captures definite when the following step is immediate
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 14s
When collecting captures, we were treating unfinished ones as definite
even if they had pending immediate steps that weren't yet satisfied. Now
we only mark a capture as definite if the pattern is guaranteed and
there are no pending immediate steps to check.
2025-01-04 02:03:41 -05:00
Amaan Qureshi
5f379da544
fix(lib): prevent wildcards from incorrectly marking child patterns as infallible
...
When a pattern appears under a wildcard parent (like "(_ (expr))"), we
were incorrectly marking it as infallible. The parent_pattern_guaranteed
flag only means the pattern will match after finding the right wildcard
parent, not that any wildcard parent will work.
2025-01-03 23:09:49 -05:00
Amaan Qureshi
a7e6d01144
fix(lib): propagate last_child status to pattern alternatives in queries
...
Previously, when a pattern was marked as the last child in a query, its
alternatives weren't marked similarly, causing incorrect matching
behavior. Now, the `last_child` status is properly propagated through
all alternatives.
2025-01-03 21:13:29 -05:00
Will Lillis
f8e77aa99d
style: move command help strings to doc comments
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 15s
Deploy Docs / deploy-docs (push) Has been cancelled
2025-01-03 17:29:07 -05:00
WillLillis
a2f6b96683
docs: add --test-number entries for query, highlight, and tag subcommands
2025-01-03 16:16:17 -05:00
Amaan Qureshi
16be945cdd
feat(cli): rework tags to use new input handler
...
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-01-03 16:16:17 -05:00
Amaan Qureshi
55fda55b9b
feat(cli): rework highlight to use new input handler
...
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-01-03 16:16:17 -05:00
Amaan Qureshi
88d2f010f5
feat(cli): rework query to use new input handler
...
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-01-03 16:16:17 -05:00
Amaan Qureshi
6bad1bc6c5
feat(cli): rework parse to use new input handler
...
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-01-03 16:16:17 -05:00
Amaan Qureshi
b3183363a2
feat(loader): add a way to get the cwd's language config
...
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-01-03 16:16:17 -05:00
Amaan Qureshi
cc449ad965
feat(cli): make input handling agnostic
...
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-01-03 16:16:17 -05:00
Amaan Qureshi
3456330fe9
fix: update outdated links
2025-01-03 15:09:33 -05:00
dependabot[bot]
2c064039c7
build(deps): bump emscripten to 3.1.74
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 16s
2025-01-02 22:10:49 -06:00
dependabot[bot]
6ef4432718
build(deps): bump the cargo group across 1 directory with 7 updates
...
Bumps the cargo group with 6 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [bstr](https://github.com/BurntSushi/bstr ) | `1.11.1` | `1.11.3` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.5` | `1.2.6` |
| [clap_complete_nushell](https://github.com/clap-rs/clap ) | `4.5.4` | `4.5.5` |
| [glob](https://github.com/rust-lang/glob ) | `0.3.1` | `0.3.2` |
| [serde](https://github.com/serde-rs/serde ) | `1.0.216` | `1.0.217` |
| [tempfile](https://github.com/Stebalien/tempfile ) | `3.14.0` | `3.15.0` |
Updates `bstr` from 1.11.1 to 1.11.3
- [Commits](https://github.com/BurntSushi/bstr/compare/1.11.1...1.11.3 )
Updates `cc` from 1.2.5 to 1.2.6
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.5...cc-v1.2.6 )
Updates `clap_complete_nushell` from 4.5.4 to 4.5.5
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete_nushell-v4.5.4...clap_complete_nushell-v4.5.5 )
Updates `glob` from 0.3.1 to 0.3.2
- [Release notes](https://github.com/rust-lang/glob/releases )
- [Changelog](https://github.com/rust-lang/glob/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/glob/compare/0.3.1...v0.3.2 )
Updates `serde` from 1.0.216 to 1.0.217
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.216...v1.0.217 )
Updates `serde_derive` from 1.0.216 to 1.0.217
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.216...v1.0.217 )
Updates `tempfile` from 3.14.0 to 3.15.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.14.0...v3.15.0 )
---
updated-dependencies:
- dependency-name: bstr
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: cc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete_nushell
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: glob
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_derive
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: tempfile
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-02 22:10:49 -06:00
Amaan Qureshi
2304109eab
ci: fix typo
2025-01-02 21:40:49 -06:00
Amaan Qureshi
0a58175e46
ci(emscripten): set the git user and email with the cli
2025-01-02 21:40:49 -06:00
dependabot[bot]
af6f668659
ci: bump actions/configure-pages from 4 to 5 in the actions group
...
Bumps the actions group with 1 update: [actions/configure-pages](https://github.com/actions/configure-pages ).
Updates `actions/configure-pages` from 4 to 5
- [Release notes](https://github.com/actions/configure-pages/releases )
- [Commits](https://github.com/actions/configure-pages/compare/v4...v5 )
---
updated-dependencies:
- dependency-name: actions/configure-pages
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-02 21:12:33 -06:00
Owen Shepherd
77f74a05c7
chore(generate): remove unused fields
2025-01-02 22:11:04 -05:00
WillLillis
cd3d967f3c
fix(cli): correct range in cst pretty printer
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 15s
CI / build (push) Failing after 16s
2025-01-01 23:55:16 -05:00
Will Lillis
c712276676
ci: use correct xtask command to update emscripten
CI / sanitize (push) Failing after 15s
CI / build (push) Failing after 15s
CI / checks (push) Has been cancelled
2024-12-30 20:11:12 -05:00
Amaan Qureshi
490f79bca2
ci: don't install cross if it already exists
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
CI / checks (push) Has been cancelled
2024-12-29 00:54:16 -05:00
Amaan Qureshi
22f67e2b67
fix(query): ensure immediate matches for any node when an anchor follows a wildcard node
2024-12-29 00:54:16 -05:00
Amaan Qureshi
d87d4592e0
test(rust): correct expected and actual spots in assert_eq calls
2024-12-29 00:54:16 -05:00
Amaan Qureshi
5d99014bb8
style: rephrase extends beyond to contains or starts after
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
Check Bindgen Output / check-bindgen (push) Has been cancelled
Deploy Docs / deploy-docs (push) Has been cancelled
2024-12-28 18:53:08 -05:00
Amaan Qureshi
d2db7eb8ef
docs: add back detailed info about points
2024-12-28 16:12:45 -05:00
Will Lillis
4f9869142f
fix(rust): adapt to a few new nightly lints
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
2024-12-28 01:17:04 -05:00
Amaan Qureshi
48fe030bdd
fix(playground): gracefully fallback to JavaScript if the select info is undefined
Deploy Docs / deploy-docs (push) Waiting to run
2024-12-27 17:08:49 -05:00
Amaan Qureshi
9228a31f94
fix(playground): restore select value's text from local storage
Deploy Docs / deploy-docs (push) Has been cancelled
2024-12-26 00:17:49 -05:00
Amaan Qureshi
e3b2545ab7
fix(playground): add back underline on tree nodes, and query error underline
2024-12-25 21:23:36 -05:00
Amaan Qureshi
b70843a033
fix(playground): add dark theme, align ui more akin to upstream playground
2024-12-25 21:23:36 -05:00
Amaan Qureshi
5bd0d11982
fix(playground): ensure local playground is initialized
2024-12-25 21:23:36 -05:00
Amaan Qureshi
bd6aa2be2b
fix(playground): correct link to upstream playground
2024-12-25 21:23:36 -05:00
Amaan Qureshi
87c4df3ff3
docs: add favicon and logo
2024-12-25 21:23:36 -05:00
Amaan Qureshi
dda45cfbb6
docs: move assets to correct path
2024-12-25 21:23:36 -05:00
Amaan Qureshi
694d636322
fix(lib): correct fix for parsing hang with ranges containing empty points
...
CI / checks (push) Waiting to run
Deploy Docs / deploy-docs (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
It's more correct to check the bytes of the `size` length, rather than
use the point as a condition for resetting the lexer's token start
position
2024-12-25 04:49:39 -05:00
Amaan Qureshi
f3d50f273b
fix(lib): add saturating subtraction to prevent integer underflow
2024-12-25 04:49:39 -05:00
WillLillis
7ba0f297e5
fix: re-export StreamingIterator and StreamingIteratorMut
2024-12-24 23:19:33 -05:00
Amaan Qureshi
e9b95078c7
ci(bindgen): only check bindgen output when api.h or bindings.rs changes
2024-12-24 23:09:44 -05:00
Amaan Qureshi
f6c325df0b
ci(docs): only re-deploy docs when any file in docs has changed
2024-12-24 23:09:44 -05:00
Amaan Qureshi
72807e187e
ci: don't run ci if documentation files & friends have changed
2024-12-24 23:09:44 -05:00
Amaan Qureshi
432f4fd9b5
docs: add guide on contributing to docs
2024-12-24 22:43:06 -05:00
Amaan Qureshi
03b7760275
docs(scanner): add overview to the scan function
...
Co-authored-by: David Baynard <git@baynard.dev>
2024-12-24 22:43:06 -05:00
Amaan Qureshi
28f7c6bdb2
docs: fix link to contributing.md
2024-12-24 22:43:06 -05:00
Amaan Qureshi
043969ef18
docs: migrate to mdbook
CI / checks (push) Waiting to run
Deploy Docs / deploy-docs (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
Check Bindgen Output / check-bindgen (push) Has been cancelled
2024-12-24 20:54:59 -05:00
Max Brunsfeld
201b41cf11
feat: add 'reserved word' construct
...
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 14s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2024-12-23 03:06:32 -05:00
Will Lillis
2a63077cac
style: correct typos
2024-12-23 02:11:09 -05:00
WillLillis
faf97b896a
fix(cli): use xdg config directory on macOS
...
fix: address feedback
2024-12-23 02:09:06 -05:00
WillLillis
b747261929
feat(cli): display parse and edit times separately for parse --time
2024-12-23 02:06:13 -05:00
Will Lillis
5d9870ebee
feat(cli): show parse times in testing output
2024-12-23 01:22:37 -05:00
Amaan Qureshi
8744a4e3f2
feat(lib): use const for TSCharacterRanges
2024-12-23 01:19:10 -05:00
Amaan Qureshi
00674e3162
docs: clarify the start rule of a grammar
2024-12-22 23:35:13 -05:00
dependabot[bot]
f7def174cd
build(deps): bump clap_complete from 4.5.38 to 4.5.39 in the cargo group
...
Bumps the cargo group with 1 update: [clap_complete](https://github.com/clap-rs/clap ).
Updates `clap_complete` from 4.5.38 to 4.5.39
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.38...clap_complete-v4.5.39 )
---
updated-dependencies:
- dependency-name: clap_complete
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-12-22 23:32:07 -05:00
Juyeong Maing
b68c64b332
docs: fix typo
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
2024-12-22 18:43:22 -05:00
Wilfred Hughes
90666c951d
Fix typo in doc comment ( #4022 )
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
2024-12-19 22:49:54 -08:00
Amaan Qureshi
c132f1928f
fix(xtask): add emscription version in commit msg
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 15s
2024-12-19 11:49:12 -05:00
Amaan Qureshi
47a2f042d5
ci: add workflow to update emscripten
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
2024-12-19 08:00:51 -05:00
Amaan Qureshi
1b1e99bf1a
feat: add xtask to bump emscripten-version
2024-12-19 08:00:51 -05:00
Amaan Qureshi
7d3dbc062d
build: bump deps
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 14s
CI / checks (push) Has been cancelled
Check Bindgen Output / check-bindgen (push) Has been cancelled
2024-12-16 01:22:58 -05:00
Amaan Qureshi
214b3dc2e6
fix(cli): handle nested tags test files
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 13s
2024-12-16 00:25:43 -05:00
Amaan Qureshi
2374bca62a
fix(cli): gracefully handle OOB assertions
2024-12-16 00:15:02 -05:00
Felix Roos
6c4a50a9c7
docs(web): add instructions for Vite
2024-12-16 00:09:42 -05:00
Ramkumar Ramachandra
07aaf2322e
fix: keep highlight names list consistent in the docs and cli
...
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2024-12-15 23:29:43 -05:00
Amaan Qureshi
9e1a2a701b
fix(cli): correct default query paths
2024-12-15 23:05:54 -05:00
Amaan Qureshi
e2d1e40a4d
fix(cli): correct warning message
2024-12-15 23:05:54 -05:00
StratusFearMe21
c053b63be8
docs(rust): update doc comment on node ids
2024-12-15 22:52:46 -05:00
Gabriel Holodak
f279d10aa2
fix(cli): count skipped tests correctly
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
2024-12-15 16:09:51 -05:00
Gabriel Holodak
8de3a2ee13
fix(cli): replace nerd font symbols with unicode symbols
2024-12-15 16:09:51 -05:00
Jonathan Raphaelson
8368f9994d
feat: add flag to output css classes instead of inline styles in HTML highlighter output
...
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 14s
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2024-12-15 01:43:22 -05:00
Riley Bruins
495fe2a6c5
feat: support querying missing nodes
...
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 14s
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2024-12-14 14:57:36 -05:00
kylegoetz
cd94dbd57f
feat(cli): don't validate email addresses in init command
...
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2024-12-12 20:00:48 -05:00
Patrick Thomson
530e0571c9
feat(highlight): mark TSHighlighter fields as pub
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
2024-12-10 19:37:15 -05:00
Amaan Qureshi
ea9aa018b3
feat(cli): add nushell completions
2024-12-10 19:35:58 -05:00
Amaan Qureshi
69d977d736
fix(lib): use clock_gettime on macOS again
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
2024-12-03 18:12:32 -05:00
Will Lillis
c7b218838d
fix: minor issues with CI
...
* update ctor
* pass empty `RUSTFLAGS` when installing cross, overriding
the default `-D warnings`
* fix some clippy lints
* create `target` directory before curling wasmtime lib
2024-12-03 16:41:38 -05:00
Novus Nota
e445532a1f
feat(cli): verify assertions for every carat in tests, not just the first one
...
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 14s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2024-11-28 23:25:49 -05:00
ObserverOfTime
473f0a1a4d
feat(bindings): update some binding files
...
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 13s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
- setup.py
- binding.gyp
2024-11-25 09:45:13 -05:00
ObserverOfTime
a08c4b58ab
fix(bindings): include headers & queries in python sdist
2024-11-25 09:45:13 -05:00
Peter Oliver
8eb4407200
feat(make,cmake): install queries along with parser libraries
...
Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
2024-11-25 07:59:25 -05:00
dependabot[bot]
325b3209ef
build(deps): bump the cargo group across 1 directory with 9 updates
...
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 13s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
Bumps the cargo group with 8 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [bstr](https://github.com/BurntSushi/bstr ) | `1.10.0` | `1.11.0` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.1.36` | `1.2.1` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.20` | `4.5.21` |
| [clap_complete](https://github.com/clap-rs/clap ) | `4.5.37` | `4.5.38` |
| [serde](https://github.com/serde-rs/serde ) | `1.0.214` | `1.0.215` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.132` | `1.0.133` |
| [tempfile](https://github.com/Stebalien/tempfile ) | `3.13.0` | `3.14.0` |
| [thiserror](https://github.com/dtolnay/thiserror ) | `1.0.68` | `1.0.69` |
Updates `bstr` from 1.10.0 to 1.11.0
- [Commits](https://github.com/BurntSushi/bstr/compare/1.10.0...1.11.0 )
Updates `cc` from 1.1.36 to 1.2.1
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.1.36...cc-v1.2.1 )
Updates `clap` from 4.5.20 to 4.5.21
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.20...clap_complete-v4.5.21 )
Updates `clap_complete` from 4.5.37 to 4.5.38
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.37...clap_complete-v4.5.38 )
Updates `serde` from 1.0.214 to 1.0.215
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.214...v1.0.215 )
Updates `serde_derive` from 1.0.214 to 1.0.215
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.214...v1.0.215 )
Updates `serde_json` from 1.0.132 to 1.0.133
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.132...v1.0.133 )
Updates `tempfile` from 3.13.0 to 3.14.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.13.0...v3.14.0 )
Updates `thiserror` from 1.0.68 to 1.0.69
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.68...1.0.69 )
---
updated-dependencies:
- dependency-name: bstr
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: cc
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_derive
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: tempfile
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-11-22 23:18:38 -05:00
dependabot[bot]
ed23f02784
build(deps): bump cross-spawn from 7.0.3 to 7.0.5 in /cli/eslint
...
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn ) from 7.0.3 to 7.0.5.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md )
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.5 )
---
updated-dependencies:
- dependency-name: cross-spawn
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-11-22 23:18:29 -05:00
Karl Traunmüller
9c80557658
docs: add documentation for TSPoint coordinates ( #3949 )
...
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 14s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
* docs: add documentation for TSPoint coordinates
* docs: applied suggestion for TSPoint coordinates documentation
2024-11-19 12:24:31 -08:00
Amaan Qureshi
274e60a523
fix: clippy lints
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 15s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
2024-11-16 03:20:59 -05:00
Riley Bruins
78e5144f3f
feat: generate schema in tree-sitter.json
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 14s
2024-11-16 00:38:58 -05:00
Amaan Qureshi
05b2f443ba
fix: clippy lint
2024-11-15 23:54:18 -05:00
Riley Bruins
fa6c1471ef
fix(lib): correct escape detection for invalid anonymous nodes
...
The current quotation escape checker fails in the case that
there is an anonymous node that is just an escaped backslash (it thinks
the backslash escapes the quote, when really it is just an escaped
backslash itself. See the added test case for an example of this).
This commit ensures the node identification logic keeps track of the
number of backslashes seen so it can accurately determine if the
quotation is escaped or not.
2024-11-15 23:49:06 -05:00
dependabot[bot]
0f7d888883
build(deps): bump @eslint/plugin-kit from 0.2.0 to 0.2.3 in /cli/eslint
...
Bumps [@eslint/plugin-kit](https://github.com/eslint/rewrite ) from 0.2.0 to 0.2.3.
- [Release notes](https://github.com/eslint/rewrite/releases )
- [Changelog](https://github.com/eslint/rewrite/blob/main/release-please-config.json )
- [Commits](https://github.com/eslint/rewrite/compare/core-v0.2.0...plugin-kit-v0.2.3 )
---
updated-dependencies:
- dependency-name: "@eslint/plugin-kit"
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-11-15 23:45:35 -05:00
aleloi
00d34e86a3
build(zig): use build root instead of cwd ( #3944 )
...
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 14s
`std.fs.cwd` refers to the cwd of the build process, which is not the
root of tree-sitter when tree-sitter is used as a sub-module.
Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
2024-11-15 12:47:01 +02:00
Riley Bruins
bcf82da55c
refactor: reuse symbol variable in subtype map generator
...
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 14s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
Tiny change to prevent redundant creation of a symbol value in
`node_types.rs`.
2024-11-13 20:54:57 -05:00
Amaan Qureshi
015547c526
fix: compiler warning
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 14s
2024-11-12 19:10:06 -05:00
crvdgc
15c2957993
fix(xtask): bring back language and example filter
2024-11-12 19:09:49 -05:00
crvdgc
d363f0921f
doc(xtask): update doc to use xtask, not scripts
...
Follow-up of dbe8bbf . Also removed `-l` flag since it's not used
anymore.
2024-11-12 19:09:49 -05:00
Will Lillis
5d1be545c4
fix(lib): correct next sibling of zero width node
2024-11-12 18:17:45 -05:00
Amaan Qureshi
51dfe3dbdb
docs: remove CHANGELOG.md
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 14s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
2024-11-11 05:27:12 +01:00
Daiki Noda
738c956a3e
docs: add missing tags description
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
2024-11-10 17:24:22 +01:00
Amaan Qureshi
18e4a2405b
fix(loader): don't print warnings if the file is not found
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
2024-11-10 04:53:22 +01:00
Amaan Qureshi
d73b66cbbc
fix(cmake): use current source dir for EXISTS check
2024-11-10 04:00:32 +01:00
Amaan Qureshi
ac4595e808
feat(node): update bindings when necessary
2024-11-10 03:55:58 +01:00
Amaan Qureshi
134233f33a
feat(node): support single-file executables via bun build --compile
2024-11-10 03:47:32 +01:00
Amaan Qureshi
49ff53cc83
fix(lib): correctly fetch the node name in query errors
2024-11-10 03:44:54 +01:00
WillLillis
05b6871a02
feat(loader): support multi-barreled file extensions
2024-11-10 03:44:33 +01:00
Will Lillis
7b90dbf189
feat(loader): add error message when a tree-sitter.json file is invalid
2024-11-09 20:46:29 -05:00
Bastiaan Marinus van de Weerd
0dc1044d0d
feat(loader): add language_for_configuration
2024-11-09 15:09:50 -05:00
ObserverOfTime
23b03d9f4a
build(deps): bump wasmtime-c-api to v26.0.1
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 14s
2024-11-09 21:04:52 +01:00
ObserverOfTime
a59bc697e3
feat(xtask): let upgrade-wasmtime update Cargo.lock
2024-11-09 21:04:52 +01:00
ObserverOfTime
1d5502d7b2
chore(bindings): update go binding version
2024-11-09 21:03:38 +01:00
ObserverOfTime
2d5a4b6bd6
chore(bindings): include tree-sitter.json file
2024-11-09 21:03:38 +01:00
Liu Yuxi
20aaabfd9c
fix(xtask): remove the test_flags arg if it's empty for cargo test
...
`cargo xtask test test_something` currently constructs `cargo test ''
test_something`, which errors out for `cargo test`. This fix removes
the `test_flags` string if it's empty.
2024-11-09 15:03:14 -05:00
dependabot[bot]
0f15779863
Merge pull request #3885 from tree-sitter/dependabot/cargo/wasmtime-26.0.1
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 14s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
2024-11-05 22:39:31 +00:00
dependabot[bot]
656b946e78
build(deps): bump wasmtime from 26.0.0 to 26.0.1
...
Bumps [wasmtime](https://github.com/bytecodealliance/wasmtime ) from 26.0.0 to 26.0.1.
- [Release notes](https://github.com/bytecodealliance/wasmtime/releases )
- [Changelog](https://github.com/bytecodealliance/wasmtime/blob/main/docs/contributing-release-process.md )
- [Commits](https://github.com/bytecodealliance/wasmtime/compare/v26.0.0...v26.0.1 )
---
updated-dependencies:
- dependency-name: wasmtime
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-11-05 22:19:26 +00:00
Peter Oliver
25e36bda87
Link to Emacs’ Tree-sitter documentation ( #3881 )
...
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 13s
Since Emacs 29, Tree-sitter is a built-in feature not requiring a third-party Emacs module.
2024-11-04 14:08:52 -08:00
ObserverOfTime
8588c96691
fix(bindings): fix scanner check in binding.gyp
...
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 14s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
Use `fs.existsSync` rather than `fs.exists`
2024-11-03 06:02:39 -05:00
ObserverOfTime
66a1bc50fa
fix(bindings): update CMakeLists.txt file
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 14s
2024-11-02 13:17:11 -04:00
Amaan Qureshi
998d2c9d8c
fix(generate): do not set the unit reduction symbol if it's in the extras array
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
2024-11-02 04:20:40 -04:00
Amaan Qureshi
310a9f0704
fix: disallow tokens that match the empty string
2024-11-02 03:36:11 -04:00
WillLillis
8c802da174
fix(lib): check point, byte ranges in node_descendant_for
...
functions
2024-11-02 03:06:07 -04:00
WillLillis
5b5cf5a5e5
fix(lib): check point, byte ranges in ts_query_cursor_set
...
range functions
2024-11-02 03:06:07 -04:00
Will Lillis
9d86cb2c20
fix(docs): update link for "Error Detection and Recovery in LR Parsers"
2024-11-02 01:34:49 -04:00
Amaan Qureshi
7baefa8609
fix(cli): use contains over is in warning
2024-11-02 01:31:46 -04:00
Amaan Qureshi
e892862c6c
fix(rust): fix progress callback scope to prevent premature drop
2024-11-02 00:57:50 -04:00
ObserverOfTime
02ff0af69c
build(bindings): rename cmake test target
...
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 14s
CTest creates a test target which breaks the build when the parser is
included via FetchContent in a CMake project that uses CTest
2024-10-31 23:12:28 -04:00
Amaan Qureshi
500f4326d5
feat: add the ability to specify a custom decode function
2024-10-31 22:51:40 -04:00
Amaan Qureshi
e27160b118
feat(rust): remove usage of deprecated functions
2024-10-31 21:58:35 -04:00
Amaan Qureshi
6fdba6bbd6
feat(rust): add *_with_options to the parser and query cursor, deprecate old functions
...
The normal `with` functions are now deprecated in favor of the
`with_options` ones.
2024-10-31 21:58:35 -04:00
Amaan Qureshi
8d68980aa8
feat(lib): add ts_query_cursor_exec_with_options
...
Currently, this allows users to pass in a callback that should be
invoked to check whether or not to halt query execution
2024-10-31 21:58:35 -04:00
Amaan Qureshi
26b89da9bb
feat(lib): add ts_parser_parse_with_options
...
Currently, this allows users to pass in a callback that should be
invoked to check whether or not to halt parsing
2024-10-31 21:58:35 -04:00
Amaan Qureshi
aaba7cd2f9
feat: implement a cache for get_column
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 12s
Check Bindgen Output / check-bindgen (push) Has been cancelled
CI / checks (push) Has been cancelled
2024-10-30 18:35:38 -04:00
Sam Estep
a767f89967
docs: fix missing links
2024-10-30 17:24:16 -04:00
Sam Estep
8ecda3ed98
docs: code-format repro commands in bug report template
...
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2024-10-30 17:10:55 -04:00
Sam Estep
f3f7230ee3
fix(cli): pass all fields to tree-sitter.json in init
2024-10-30 17:09:21 -04:00
Sam Estep
31af4294a7
docs: recommend npm install for editor integration
2024-10-30 17:06:23 -04:00
Sam Estep
c3ec2c251e
docs(rust): add --locked to installation instructions
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 14s
2024-10-30 10:51:46 -04:00
Amaan Qureshi
55bda0a968
build: regenerate bindings.rs & add Language::name
Check Bindgen Output / check-bindgen (push) Waiting to run
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
2024-10-29 18:51:27 -04:00
Amaan Qureshi
ab306f543f
ci: add bindgen workflow
2024-10-29 18:51:27 -04:00
Amaan Qureshi
350fff24bf
fix(lib): simplify edge cases with zero-width tokens
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
CI / checks (push) Has been cancelled
2024-10-28 13:57:29 +00:00
dundargoc
a3de650024
fix: make sha generation work with submodules
...
More specifically, change `is_dir` to `exists` as `.git` is a file when
in a submodule.
2024-10-28 12:16:48 +01:00
dundargoc
dc4e232e6e
feat: add build sha to parser.c header comment
2024-10-28 12:16:48 +01:00
dependabot[bot]
74481399df
Merge pull request #3832 from tree-sitter/dependabot/cargo/cargo-ff991ead52
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 13s
2024-10-27 10:39:30 +00:00
dependabot[bot]
abafa073df
build(deps): bump wasmparser in the cargo group across 1 directory
...
Bumps the cargo group with 1 update in the / directory: [wasmparser](https://github.com/bytecodealliance/wasm-tools ).
Updates `wasmparser` from 0.217.0 to 0.218.0
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/commits )
---
updated-dependencies:
- dependency-name: wasmparser
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-10-26 23:59:05 +00:00
ObserverOfTime
3661689389
feat(bindings): drop language name from node
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
2024-10-26 23:53:58 +00:00
ObserverOfTime
c5ee0ac070
feat(lib): add the language name
2024-10-26 23:53:58 +00:00
Amaan Qureshi
42dd32d184
build: remove unicode files and script, move cliff.toml
2024-10-26 23:25:12 +00:00
Amaan Qureshi
c7d6fd7fa5
build: move `generate-wasm-exports-lists to xtask
2024-10-26 23:25:12 +00:00
Amaan Qureshi
c8cf75fd30
feat(generate)!: use regex_syntax::Hir for expanding regexes
...
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2024-10-26 23:25:12 +00:00
Amaan Qureshi
c707f3ee9e
fix(xtask): correct header path
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 14s
2024-10-26 17:02:00 +00:00
Amaan Qureshi
ce93d8fd9b
feat!: bump internal abi to 15
2024-10-26 17:02:00 +00:00
ObserverOfTime
413b7cbcca
build(cli): get build sha via git command
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 14s
2024-10-26 04:41:10 +00:00
Christian Clason
66cd81a4f8
build(deps): bump wasmtime to v26.0.0
...
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
CI / checks (push) Has been cancelled
https://github.com/bytecodealliance/wasmtime/releases/tag/v26.0.0
reland https://github.com/tree-sitter/tree-sitter/pull/3779
2024-10-24 17:09:06 +00:00
ObserverOfTime
8515986b73
docs(rust): document optional features
2024-10-24 17:08:55 +00:00
ObserverOfTime
7f0c5f928a
feat(generate): add a comment with the tree-sitter version
2024-10-24 17:07:15 +00:00
ObserverOfTime
d3a127a48f
chore(bindings): more small changes
...
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 14s
CI / checks (push) Has been cancelled
- Rename cmakelists.txt to cmakelists.cmake
- Bump node-addon-api version in package.json
- Remove License classifier from pyproject.toml
- Move require call to top level in Node.js test
2024-10-20 16:55:27 +00:00
Joel Spadin
9c8a0d47a0
fix(dsl): fix types for RuleBuilder
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 14s
The second parameter to RuleBuilder should be optional. Fixes #3811 .
2024-10-20 01:27:42 +00:00
ObserverOfTime
f9a4e8ecdc
fix(init): use current path if unspecified
2024-10-19 19:28:51 +00:00
ObserverOfTime
8681960fbc
chore(bindings): correct editorconfig indent size
2024-10-19 18:31:46 +00:00
ObserverOfTime
c23670264f
chore(bindings): drop pkg-config Requires field
2024-10-19 18:31:46 +00:00
ObserverOfTime
4089569934
chore(bindings): improve gitattributes file
...
- Separate bindings into language sections
- Mark all metadata & lockfiles as generated
2024-10-19 18:31:46 +00:00
ObserverOfTime
5df4706b19
chore(bindings): clean up package.json
...
- Use PARSER_URL in repository
- Remove tree-sitter section
2024-10-19 18:31:46 +00:00
ObserverOfTime
66dab20462
feat(bindings): auto-detect scanners
2024-10-19 18:31:09 +00:00
ObserverOfTime
60c5057617
ci: build lib with wasmtime
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
2024-10-19 02:57:08 +00:00
ObserverOfTime
881c54e462
fix(lib): handle compiler warnings
2024-10-19 02:57:08 +00:00
ObserverOfTime
70c0cba15b
build: treat incompatible pointer warning as error
2024-10-19 02:57:08 +00:00
Amaan Qureshi
40606dd632
feat: add version subcommand for versioning grammars
2024-10-18 22:08:57 -04:00
Mrmaxmeier
c03977a87e
fix: return LanguageRef in Parser::language
...
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 14s
CI / checks (push) Has been cancelled
`ts_parser_language` doesn't do any refcounting, so we can't return the
resulting pointer as an owned Language object
2024-10-17 15:44:08 -04:00
Owen Shepherd
e87181ec9c
fix(cli): remove unnecessary referencing/dereferencing in build_parse_table
...
These were probably optimized away, and in any case are only run once,
per CLI run, but may as well remove them.
2024-10-17 15:25:44 -04:00
ObserverOfTime
ac37e60559
refactor(web): use fs/promises
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
CI / checks (push) Has been cancelled
2024-10-15 16:10:23 +00:00
dependabot[bot]
0cd4aa2075
Merge pull request #3789 from tree-sitter/dependabot/cargo/cargo-283306c349
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 14s
2024-10-15 06:34:57 +00:00
Amaan Qureshi
3b55003fd5
fix(init): use camel name from config in missing spots
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
2024-10-14 19:07:55 -04:00
Amaan Qureshi
38e3e51fca
feat(rust): add Language::node_kind_is_supertype
2024-10-14 17:53:22 -04:00
dependabot[bot]
26b29531d9
build(deps): bump cc from 1.1.28 to 1.1.30 in the cargo group
...
Bumps the cargo group with 1 update: [cc](https://github.com/rust-lang/cc-rs ).
Updates `cc` from 1.1.28 to 1.1.30
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.1.28...cc-v1.1.30 )
---
updated-dependencies:
- dependency-name: cc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 21:38:09 +00:00
dundargoc
fb23de9261
ci: add nvim-treesitter parser tests
...
This allows contributors to know whether their changes affect the
ecosystem and inadvertantly make a breaking change.
2024-10-14 16:28:22 +02:00
Amaan Qureshi
68c1fb66bd
fix(lib): add parameter names in declarations in subtree.h
2024-10-13 23:05:40 -04:00
ObserverOfTime
b7421bf89f
revert: "Memory errors in wasm_store"
...
This reverts commit 178c5d93f4 .
2024-10-13 16:40:15 +03:00
Ryan Patterson
178c5d93f4
Memory errors in wasm_store
...
```
In file included from tree_sitter/core/lib/src/lib.c:14:
tree_sitter/core/lib/src/./wasm_store.c:868:94: warning: incompatible pointer types passing 'uint32_t *' (aka 'unsigned int *') to parameter of type 'uint64_t *' (aka 'unsigned long long *') [-Wincompatible-pointer-types]
error = wasmtime_table_grow(context, &function_table, lexer_definitions_len, &initializer, &table_index);
^~~~~~~~~~~~
/Users/rpatterson/Projects/amel/py-tree-sitter/.direnv/python-3.11/include/wasmtime/table.h:105:31: note: passing argument to parameter 'prev_size' here
uint64_t *prev_size);
^
In file included from tree_sitter/core/lib/src/lib.c:14:
tree_sitter/core/lib/src/./wasm_store.c:969:102: warning: incompatible pointer types passing 'uint32_t *' (aka 'unsigned int *') to parameter of type 'uint64_t *' (aka 'unsigned long long *') [-Wincompatible-pointer-types]
error = wasmtime_table_grow(context, &self->function_table, dylink_info->table_size, &initializer, &prev_table_size);
^~~~~~~~~~~~~~~~
/Users/rpatterson/Projects/amel/py-tree-sitter/.direnv/python-3.11/include/wasmtime/table.h:105:31: note: passing argument to parameter 'prev_size' here
uint64_t *prev_size);
^
2 warnings generated.
```
2024-10-13 13:10:56 +03:00
Will Lillis
4705a3153a
feat: Add CST pretty-printer for parser output
...
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2024-10-12 18:37:12 -04:00
Amaan Qureshi
72f114fa12
perf(loader): improve language lookup speed
2024-10-12 03:08:57 -04:00
Amaan Qureshi
fe92e978f9
fix(lib): properly reset the lexer's start postiion
2024-10-11 19:02:41 -04:00
ObserverOfTime
4b1ae40faf
build(deps): bump wasmtime to v25.0.2
2024-10-11 18:49:14 -04:00
ObserverOfTime
1405b5555b
feat(xtask): add upgrade-wasmtime command
2024-10-11 18:49:14 -04:00
ObserverOfTime
e8e56255bd
ci: major overhaul
...
- Simplify some workflow steps and auxiliary scripts
- Build library using cmake when not cross-compiling
- Try to fetch fixtures from cache first
- Use `actions-rust-lang/setup-rust-toolchain`
2024-10-11 18:33:07 -04:00
ObserverOfTime
7715001692
build: tune compiler warnings
2024-10-11 18:33:07 -04:00
Amaan Qureshi
20c2783310
fix(lib): fix compilation issue on windows with endian.h
2024-10-11 15:25:51 -04:00
Christian Clason
b7a00527be
build(deps): bump wasmtime to v25.0.2
2024-10-09 19:33:38 +02:00
dependabot[bot]
6f06839d15
Merge pull request #3765 from tree-sitter/dependabot/cargo/cargo-a8e37abc8d
2024-10-09 08:17:16 +00:00
Amaan Qureshi
538a197976
fix(lib): correct unexpected side effect in get_column when the lexer is at EOF
2024-10-08 23:27:42 -04:00
dependabot[bot]
6d36e81823
build(deps): bump the cargo group across 1 directory with 2 updates
...
Bumps the cargo group with 2 updates in the / directory: [clap](https://github.com/clap-rs/clap ) and [clap_complete](https://github.com/clap-rs/clap ).
Updates `clap` from 4.5.19 to 4.5.20
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.19...clap_complete-v4.5.20 )
Updates `clap_complete` from 4.5.32 to 4.5.33
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.32...clap_complete-v4.5.33 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: clap_complete
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-10-09 01:11:19 +00:00
ObserverOfTime
9d2196cdbd
build(zig): add optional wasmtime dependency
...
And support compiling a shared library
2024-10-08 21:09:53 -04:00
Amaan Qureshi
cad2d03101
chore: remove unnecessary fuzz and profile helpers
2024-10-08 21:07:41 -04:00
Amaan Qureshi
9c08edb066
build: configure clippy lints at the workspace level
2024-10-08 21:07:41 -04:00
Amaan Qureshi
dbe8bbf480
feat: move scripts to xtasks
2024-10-08 21:07:41 -04:00
Will Lillis
5c6445edea
chore: misc clippy lints
2024-10-06 17:55:00 -04:00
Antonin Delpeuch
50bea73ce3
docs(rust): updated README to reflect language initialization updates
2024-10-06 13:30:05 -04:00
dundargoc
94f7a47abd
build: fix incorrect variable checks
...
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
CI / checks (push) Has been cancelled
Cmake variables should not use `${}` when checking for existence.
2024-10-06 15:56:05 +02:00
Amaan Qureshi
cc2caecf7a
build: tweak Cargo.tomls
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
2024-10-06 01:48:43 -04:00
JCWasmx86
099fd4efb7
feat: allow setting the output directory for generated source files
2024-10-05 21:52:07 -04:00
Amaan Qureshi
5e8401fb1d
docs: update changelog
2024-10-05 21:50:28 -04:00
Amaan Qureshi
8943983df6
feat!: properly handle UTF-16 endianness encoding
2024-10-05 21:12:48 -04:00
Amaan Qureshi
cf8ed78a9a
feat: bump version to 0.25
2024-10-05 20:23:40 -04:00
Amaan Qureshi
34fa7a0c64
feat(lib): wrap subtrees with changes in green circles
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
2024-10-05 20:08:34 -04:00
Amaan Qureshi
6be6a40bdf
fix(cli): do not stop printing dot graphs until edits are re-parsed
2024-10-05 20:08:34 -04:00
ObserverOfTime
21a34f9124
fix(templates): properly replace author email
2024-10-05 17:23:09 -04:00
ObserverOfTime
95f24e0364
chore(templates): update npm packages
2024-10-05 17:23:09 -04:00
Carlo Cabrera
079c69313f
build(make): fix tree-sitter.pc generation ( #3745 )
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 14s
2024-10-05 18:27:21 +03:00
ObserverOfTime
edfd47e1c6
build(cmake): correct library scopes
2024-10-05 18:17:01 +03:00
Amaan Qureshi
c611e15a31
chore(cli): minor correction in comments
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 14s
2024-10-05 01:41:05 -04:00
Amaan Qureshi
d039ae4b7b
docs: update changelog
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 13s
CI / build (push) Failing after 13s
2024-10-04 11:42:33 -04:00
Amaan Qureshi
0f5f7710ea
build(changelog): prepend to the changelog
2024-10-04 11:38:07 -04:00
ObserverOfTime
a397b454a3
build(bindings): improve cmake file
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 14s
CI / build (push) Failing after 13s
- Use placeholders for version, description, homepage
- Add option for `TREE_SITTER_REUSE_ALLOCATOR`
- Define `TREE_SITTER_DEBUG` in debug mode
2024-10-04 11:15:29 -04:00
ObserverOfTime
1d76ec3a1c
feat: drop legacy binding updates
2024-10-04 11:01:51 -04:00
Carlo Cabrera
666db18c28
build(cmake): support amalgamated build
...
CI / checks (push) Waiting to run
CI / sanitize (push) Failing after 12s
CI / build (push) Failing after 12s
This mirrors passing `AMALGAMATED=1` to `make` when using the
`Makefile`. It can be enabled by passing `-DAMALGAMATED=ON` to `cmake`.
2024-10-04 09:27:59 +03:00