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

#123 in Parser implementations

Download history 2330/week @ 2023-12-22 2465/week @ 2023-12-29 3128/week @ 2024-01-05 4230/week @ 2024-01-12 4686/week @ 2024-01-19 5529/week @ 2024-01-26 5014/week @ 2024-02-02 4192/week @ 2024-02-09 3924/week @ 2024-02-16 3325/week @ 2024-02-23 3305/week @ 2024-03-01 3061/week @ 2024-03-08 2529/week @ 2024-03-15 3229/week @ 2024-03-22 2048/week @ 2024-03-29 2746/week @ 2024-04-05

10,885 downloads per month
Used in 34 crates (26 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.7–4MB
~71K SLoC