tree-sitter-stack-graphs definition for Ruby
This project defines tree-sitter-stack-graphs rules for Ruby using the tree-sitter-ruby grammar.
Usage
To use this library, add the following to your Cargo.toml:
[]
= "0.0.1"
Check out our documentation for more details on how to use this library.
Command-line Program
The command-line program for tree-sitter-stack-graphs-ruby lets you do stack graph based analysis and lookup from the command line.
Install the program using cargo install as follows:
Development
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
src/stack-graphs.tsg. - Builtins sources and configuration are defined in
src/builtins.rbandbuiltins.cfgrespectively. - Tests are put into the
testdirectory.
Building and Running Tests
Build the project by running:
Run the tests as follows:
The project consists of a library and a CLI. By default, running cargo only applies to the library. To run cargo commands on the CLI as well, add --features cli or --all-features.
Run the CLI from source as follows:
Sources are formatted using the standard Rust formatted, which is applied by running:
Writing TSG
The stack graph rules are written in tree-sitter-graph. Checkout the examples, which contain self-contained TSG rules for specific language features. A VSCode extension is available that provides syntax highlighting for TSG files.
Parse and test a single file by executing the following commands:
Generate a visualization to debug failing tests by passing the -V flag:
To generate the visualization regardless of test outcome, execute:
Go to https://crates.io/crates/tree-sitter-stack-graphs for links to examples and documentation.