1 unstable release
|0.1.0||Feb 8, 2023|
#2 in #stack-graphs
tree-sitter-stack-graphs definition for TypeScript
This project defines tree-sitter-stack-graphs rules for TypeScript using the tree-sitter-typescript grammar.
To use this library, add the following to your
[dependencies] tree-sitter-stack-graphs-typescript = "0.1"
Check out our documentation for more details on how to use this library.
The command-line program for
tree-sitter-stack-graphs-typescript lets you do
stack graph based analysis and lookup from the command line.
Install the program using
cargo install as follows:
$ cargo install --features cli tree-sitter-stack-graphs-typescript $ tree-sitter-stack-graphs-typescript --help
The project is written in Rust, and requires a recent version installed. Rust can be installed and updated using rustup.
The project is organized as follows:
- The stack graph rules are defined in
- Builtins sources and configuration are defined in
- Tests are put into the
Build the project by running:
$ cargo build
Run the tests as follows:
$ cargo test
The project consists of a library and a CLI.
By default, running
cargo only applies to the library.
cargo commands on the CLI as well, add
--features cli or
Run the CLI from source as follows:
$ cargo run --features cli -- ARGS
Sources are formatted using the standard Rust formatted, which is applied by running:
$ cargo fmt
The stack graph rules are written in tree-sitter-graph, which provides a VSCode extension for syntax highlighting.
Parse and test a single file by executing the following commands:
$ cargo run --features cli -- parse FILES... $ cargo run --features cli -- test TESTFILES...
Additional flags can be passed to these commands as well. For example, to generate a visualization for the test, execute:
$ cargo run --features cli -- test -V TESTFILES...
To generate the visualization regardless of test outcome, execute:
$ cargo run --features cli -- test -V --output-mode=always TESTFILES...
Go to https://crates.io/crates/tree-sitter-stack-graphs for links to examples and documentation.