7 releases

0.20.5 Feb 1, 2024
0.20.4 Jan 31, 2024
0.20.3 Oct 4, 2023
0.20.2 Jan 24, 2023
0.19.0 Mar 9, 2021

#183 in Parser implementations

Download history 1675/week @ 2023-12-25 2812/week @ 2024-01-01 3436/week @ 2024-01-08 4191/week @ 2024-01-15 4724/week @ 2024-01-22 5745/week @ 2024-01-29 4920/week @ 2024-02-05 4012/week @ 2024-02-12 4021/week @ 2024-02-19 3112/week @ 2024-02-26 3233/week @ 2024-03-04 2880/week @ 2024-03-11 2738/week @ 2024-03-18 2823/week @ 2024-03-25 2132/week @ 2024-04-01 2823/week @ 2024-04-08

10,706 downloads per month
Used in 36 crates (28 directly)

MIT license

26MB
810K SLoC

C 809K SLoC JavaScript 1K SLoC // 0.1% comments Scheme 43 SLoC // 0.1% comments Rust 37 SLoC

tree-sitter-typescript

This crate provides a TypeScript grammar for the tree-sitter parsing library. To use this crate, add it to the [dependencies] section of your Cargo.toml file. (Note that you will probably also need to depend on the tree-sitter crate to use the parsed result in any useful way.)

[dependencies]
tree-sitter = "~0.20.10"
tree-sitter-typescript = "~0.20.5"

Typically, you will use the language function to add this grammar to a tree-sitter Parser, and then use the parser to parse some code.

The below example demonstrates a simple program that parses a TypeScript function and prints the result to your terminal.

use tree_sitter::Parser;

fn main() {
    let code = r#"
    function double(x) {
        return x * 2;
    }
"#;
    let mut parser = Parser::new();
    parser
        .set_language(tree_sitter_typescript::language())
        .expect("Error loading TypeScript grammar");
    let parsed = parser.parse(code, None);
    println!("{:#?}", parsed);
}

If you have any questions, please reach out to us in the tree-sitter discussions page.

Dependencies

~2.8–4MB
~72K SLoC