#node #typed #tree-sitter #grammar #wrapper #query #type-sitter

app type-sitter-cli

CLI for type-sitter (generate typed wrappers for tree-sitter grammars from node-types.json and queries)

14 unstable releases (6 breaking)

new 0.7.2 Mar 8, 2025
0.6.1 Feb 1, 2025
0.6.0 Nov 30, 2024
0.4.0 Apr 1, 2024
0.3.0 Jul 18, 2023

#25 in Programming languages

Download history 106/week @ 2024-11-20 148/week @ 2024-11-27 37/week @ 2024-12-04 37/week @ 2024-12-11 3/week @ 2025-01-08 111/week @ 2025-01-29 14/week @ 2025-02-05 10/week @ 2025-02-12 118/week @ 2025-02-19 20/week @ 2025-02-26 126/week @ 2025-03-05

274 downloads per month

MIT/Apache

2MB
40K SLoC

type-sitter-cli: Command-line utility to generate source files with type-sitter wrappers

crates.io

See type-sitter for background information, and type-sitter#cli-tool for a guide on how to use that applied to most cases. This is the command-line tool which generates typed-safe wrappers for tree-sitter nodes.

Advanced usage

Remember, if -o isn't specified it defaults to src/type_sitter.

# Generate bindings for the `yak-sitter` feature
type-sitter-cli vendor/tree-sitter-foobar-lang --use-yak-sitter
echo "pub mod foobar_lang;\n" > src/type_sitter.rs
# You can generate bindings for multiple grammars in the same directory
type-sitter-cli vendor/tree-sitter-typescript --use-yak-sitter
echo "pub mod typescript;\n" >> src/type_sitter.rs
# Generate only node types or queries
type-sitter-cli vendor/tree-sitter-rust/src/node-types.json --use-yak-sitter
echo "pub mod rust;\n" >> src/type_sitter.rs  # src/type_sitter/rust.rs contains only node types
type-sitter-cli vendor/tree-sitter-json/queries/json --use-yak-sitter
echo "pub mod json;\n" >> src/type_sitter.rs  # src/type_sitter/json.rs contains only queries
# To see help for the CLI program
type-sitter-cli --help

Issues

  • Q: I can't import the generated sources.
  • A: type-sitter-cli doesn't generate the root module for generated sources itself, you must do so manually. e.g. if the root module is the default (src/type_sitter), either create src/type_sitter.rs or src/type_sitter/mod.rs and add pub mod <my_language>; to it.

  • Q: I get build errors for missing symbols within type_sitter.
  • A: Make sure you have the type-sitter dependency in your Cargo.toml. Also, make sure use-default-features is set to false, because the default features includes the proc macros, which the CLI is an alternative to.

  • Q: I get build errors for symbols within tree-sitter.
  • A: Make sure you are using tree-sitter 0.22.

Dependencies

~8–16MB
~191K SLoC