Skip to main content

Crate tsdl

Crate tsdl 

Source
Expand description

A downloader/builder of many tree-sitter parsers

§Why?

To build parsers (.so/.dylib) and use them with your favourite bindings.

I created it more specifically for the ruby bindings.

§Configuration

If no configuration is provided for the language you’re asking for in parsers.toml, the latest parsers will be downloaded built.

If you wish to pin parser versions:

[parsers]
java = "v0.21.0"
json = "0.21.0" # The leading v is not necessary
python = "master"
typescript = { ref = "0.21.0", cmd = "make" }
cobol = { ref = "6a469068cacb5e3955bb16ad8dfff0dd792883c9", from = "https://github.com/yutaro-sakamoto/tree-sitter-cobol" }

Run:

tsdl config default

to get the default config used by tsdl in TOML.

All configuration you can pass to tsd build can be put in the parsers.toml, like tree-sitter-ref, out-dir, etc.

build-dir = "/tmp/tsdl"
out-dir = "/usr/local/lib"

[parsers]
json = "0.21.0" # The leading v is not necessary
rust = "master"

All configuration specified in parsers.toml can be overridden with flags passed to tsdl, i.e.: tsdl build --build-dir "/tmp/tsdl" will override whatever value is the default of tsdl or in parsers.toml.

Check out Faveod/tree-sitter-parsers for an example configuration.

Modules§

actors
app
args
build
cache
config
consts
display
error
git
lock
logging
parser
sh
tree_sitter
walk

Macros§

step_error
Macro for creating Step errors with common patterns

Traits§

SafeCanonicalize

Functions§

format_duration
prompt_user
Prompt user for confirmation with default behavior
relative_to_cwd

Type Aliases§

TsdlResult
Result type for tsdl operations