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. |
||
|---|---|---|
| .. | ||
| benches | ||
| eslint | ||
| npm | ||
| src | ||
| build.rs | ||
| Cargo.toml | ||
| LICENSE | ||
| package.nix | ||
| README.md | ||
Tree-sitter CLI
The Tree-sitter CLI allows you to develop, test, and use Tree-sitter grammars from the command line. It works on MacOS,
Linux, and Windows.
Installation
You can install the tree-sitter-cli with cargo:
cargo install --locked tree-sitter-cli
or with npm:
npm install tree-sitter-cli
You can also download a pre-built binary for your platform from the releases page.
Dependencies
The tree-sitter binary itself has no dependencies, but specific commands have dependencies that must be present at runtime:
- To generate a parser from a grammar, you must have
nodeon your PATH. - To run and test parsers, you must have a C and C++ compiler on your system.
Commands
-
generate- Thetree-sitter generatecommand will generate a Tree-sitter parser based on the grammar in the current working directory. See the documentation for more information. -
test- Thetree-sitter testcommand will run the unit tests for the Tree-sitter parser in the current working directory. See the documentation for more information. -
parse- Thetree-sitter parsecommand will parse a file (or list of files) using Tree-sitter parsers.