#tree-sitter #typescript #stack-graphs #tsx

bin+lib tree-sitter-stack-graphs-typescript

使用 tree-sitter-typescript 为 TypeScript & TSX 定义的堆栈图

3 个版本 (重大更改)

0.3.0 2024年7月10日
0.2.0 2024年3月6日
0.1.0 2023年2月8日

#341 in 编程语言

每月21次下载

MIT/Apache

110KB
2.5K SLoC

TypeScript 1.5K SLoC // 0.4% comments Rust 849 SLoC // 0.1% comments TSX 38 SLoC // 0.6% comments Forge Config 2 SLoC

为 TypeScript 的 tree-sitter-stack-graphs 定义

本项目使用 tree-sitter-typescript 语法定义了 TypeScript 的 tree-sitter-stack-graphs 规则。

使用 API

要使用此库,请将以下内容添加到您的 Cargo.toml

[dependencies]
tree-sitter-stack-graphs-typescript = "0.3"

有关如何使用此库的更多详细信息,请参阅我们的 文档

使用命令行程序

tree-sitter-stack-graphs-typescript 的命令行程序让您可以从命令行执行基于堆栈图的分析和查找。

CLI 可以按以下方式运行

  1. (已安装) 使用 Cargo 安装 CLI,如下所示

    cargo install --features cli tree-sitter-stack-graphs-typescript
    

    之后,CLI 应该作为 tree-sitter-stack-graphs-typescript 可用。

  2. (从源代码) 而不是安装 CLI,它还可以直接从 crate 目录运行,作为 tree-sitter-stack-graphs-typescript 调用的替代,如下所示

    cargo run --features cli --
    

命令行程序的基本 CLI 工作流程是索引源代码并对生成的数据库发出查询

  1. 按以下方式索引源文件夹

    tree-sitter-stack-graphs-typescript index SOURCE_DIR
    

    索引将跳过任何已索引的文件。要强制重新索引,请添加 -f 标志。

    要检查源文件夹的状态,请运行

    tree-sitter-stack-graphs-typescript status SOURCE_DIR
    

    要清除数据库并从一张白纸开始,请运行

    tree-sitter-stack-graphs-typescript clean
    

    通过传递 --delete 标志来不仅清空数据库,还删除它。这对于解决版本更新后可能出现的 不支持数据库版本 错误非常有用。

  2. 运行查询以查找给定行和列中的引用的定义,请运行

    tree-sitter-stack-graphs-typescript query definition SOURCE_PATH:LINE:COLUMN
    

    结果定义将被打印,包括如果源文件可用,则包括源代码行。

通过将 -h 标志传递给 CLI 直接或传递给任何子命令来发现所有可用的命令和标志。

开发

该项目用 Rust 编写,需要安装最新版本。可以使用 rustup 安装和更新 Rust。

项目组织如下

  • 栈图规则定义在 src/stack-graphs.tsg
  • 内置函数的源代码和配置分别定义在 src/builtins.itbuiltins.cfg
  • 测试文件放置在 test 目录中。

运行测试

按照以下方式运行测试

cargo test

该项目由一个库和一个命令行界面组成。默认情况下,运行 cargo 只适用于库。要同时运行 cargo 命令的 CLI,请添加 --features cli--all-features

以下是从源代码运行 CLI 的方式

cargo run --features cli -- ARGS

源代码使用标准的 Rust 格式进行格式化,可以通过运行以下命令来实现

cargo fmt

编写 TSG

栈图规则是用 tree-sitter-graph 编写的。检查 示例,其中包含特定语言功能的自包含 TSG 规则。有一个 VSCode 扩展,它为 TSG 文件提供语法高亮。

通过执行以下命令解析和测试单个文件

cargo run --features cli -- parse FILES...
cargo run --features cli -- test TESTFILES...

通过传递 -V 标志来生成可视化以调试失败的测试

cargo run --features cli -- test -V TESTFILES...

要无论测试结果如何都生成可视化,请执行

cargo run --features cli -- test -V --output-mode=always TESTFILES...

访问 https://crates.io/crates/tree-sitter-stack-graphs 以获取示例和文档链接。

依赖项

~27–45MB
~1M SLoC