tree-sitter/cli
Max Brunsfeld 26dac9b2dd Fix query bugs revealed by randomized tests
* Fix bugs related to named wildcard patterns vs regular wildcard patterns.
* Fix handling of extra nodes during query analysis. Previously, the
expected child_index was updated incorrectly after an extra node,
leading to false "impossible pattern" errors.
* Refine logic for avoiding unnecessary state-splitting due to fallible steps.
Compute *two* different analysis results related to step fallibility:
  * `root_pattern_guaranteed` which, like before, summarizes whether the
    entire pattern is guaranteed to match once this step is reached.
  * `parent_pattern_guaranteed` - which just indicates whether the
    immediate parent pattern is guaranteed. This is now used when
    deciding whether it's necessary to split a match state.
2021-11-21 12:02:58 -08:00
..
benches cli: Extract CLI configuration into separate crate 2021-06-10 10:21:22 -04:00
config Merge pull request #1234 from ahlinc/fix/imrove-config-loading-err-msgs 2021-07-15 20:37:40 -07:00
loader Use serde's derive feature 2021-10-05 02:38:18 -05:00
npm chore(cli): Add the LICENSE file to the tree-sitter-cli npm package 2021-08-22 03:13:46 +03:00
src Fix query bugs revealed by randomized tests 2021-11-21 12:02:58 -08:00
vendor Add a highlight subcommand 2019-02-19 12:32:03 -08:00
build.rs Put emscripten-version file in cli directory 2021-09-03 13:57:45 -07:00
Cargo.toml Add a randomized test for query matching 2021-11-21 11:29:36 -08:00
emscripten-version Put emscripten-version file in cli directory 2021-09-03 13:57:45 -07:00
README.md chore(docs): Fix misprints 2021-09-22 00:24:36 +03:00

Tree-sitter CLI

Build Status Build status Crates.io

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 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 node on your PATH.
  • To run and test parsers, you must have a C and C++ compiler on your system.

Commands

  • generate - The tree-sitter generate command will generate a Tree-sitter parser based on the grammar in the current working directory. See the documentation for more information.

  • test - The tree-sitter test command will run the unit tests for the Tree-sitter parser in the current working directory. See the documentation for more information.

  • parse - The tree-sitter parse command will parse a file (or list of files) using Tree-sitter parsers.