An incremental parsing system for programming tools https://tree-sitter.github.io
Find a file
Antonin Delpeuch 3bd8f7df8e 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).

(cherry picked from commit 36d93aeff3)
2025-07-10 09:25:22 +02:00
.cargo feat: add xtasks to assist with bumping crates 2024-02-25 13:40:03 -05:00
.github ci(lint): stop linting with nightly 2025-06-26 15:06:52 +02:00
cli perf: More efficient computation of used symbols 2025-07-10 09:25:22 +02:00
docs fix(bindings): update swift & node dependencies (#4432) (#4499) 2025-06-07 15:09:22 -04:00
highlight fix(highlight): account for carriage return at EOF and chunk ends 2025-06-05 09:16:09 +02:00
lib fix(web): wasm export paths 2025-07-09 21:07:29 +02:00
tags feat(tags): implement Send + Sync for TagsConfiguration 2025-01-21 00:21:35 -05:00
test/fixtures Fix crash w/ goto_previous_sibling when parent node has leading extra child (#4472) (#4473) 2025-05-27 17:35:57 -07:00
xtask ci(lint): stop linting with nightly 2025-06-26 15:06:52 +02:00
.dockerignore Add a simple dockerfile for testing 2024-03-18 12:35:10 -07:00
.editorconfig build: add editorconfig 2024-02-11 13:03:58 +01:00
.gitattributes fix: specify eof should be lf for windows cicd 2024-01-25 20:12:36 -05:00
.gitignore feat(web)!: rewrite the library in TypeScript 2025-01-21 12:36:15 -05:00
build.zig build(zig): use build root instead of cwd (#3944) 2024-11-15 12:47:01 +02:00
build.zig.zon 0.25.6 2025-06-04 09:08:14 -07:00
Cargo.lock 0.25.6 2025-06-04 09:08:14 -07:00
Cargo.toml fix(rust): ignore new nightly lint, correct order of lint list 2025-07-06 19:11:59 +02:00
CONTRIBUTING.md docs: improve docs for contributing to docs 2025-01-10 22:57:54 -05:00
Dockerfile Add a simple dockerfile for testing 2024-03-18 12:35:10 -07:00
FUNDING.json chore: add FUNDING.json 2023-11-08 00:08:07 -05:00
LICENSE docs(license): update year 2024-03-16 01:15:22 -04:00
Makefile ci(lint): stop linting with nightly 2025-06-26 15:06:52 +02:00
Package.swift build(swift): include all source files 2025-01-06 01:13:04 -05:00
README.md docs: add discord and matrix badges 2024-03-10 11:28:14 -04:00
rustfmt.toml refactor(rust): misc fixes & tidying 2024-04-11 22:35:43 -04:00

tree-sitter

DOI discord matrix

Tree-sitter is a parser generator tool and an incremental parsing library. It can build a concrete syntax tree for a source file and efficiently update the syntax tree as the source file is edited. Tree-sitter aims to be:

  • General enough to parse any programming language
  • Fast enough to parse on every keystroke in a text editor
  • Robust enough to provide useful results even in the presence of syntax errors
  • Dependency-free so that the runtime library (which is written in pure C) can be embedded in any application