#tree-sitter #python #stack-graphs

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

使用 tree-sitter-python 为 Python 定义的堆栈图

3 个版本 (破坏性更新)

0.2.0 2024年7月10日
0.1.0 2024年3月6日
0.0.1 2023年6月1日

279编程语言 中排名

Download history 46/week @ 2024-04-11 3/week @ 2024-04-18 3/week @ 2024-04-25 109/week @ 2024-05-02 162/week @ 2024-05-09 37/week @ 2024-05-16 4/week @ 2024-05-23 64/week @ 2024-07-04 43/week @ 2024-07-11 2/week @ 2024-07-18 4/week @ 2024-07-25

每月下载 113

MIT/Apache

44KB
1K SLoC

Scheme 645 SLoC // 0.1% comments Python 343 SLoC // 0.4% comments Rust 63 SLoC // 0.2% comments Forge Config 1 SLoC

Python 的 tree-sitter-stack-graphs 定义

此项目使用 tree-sitter-python 语法定义了 tree-sitter-stack-graphs 规则。

使用 API

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

[dependencies]
tree-sitter-stack-graphs-python = "0.2"

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

使用命令行程序

tree-sitter-stack-graphs-python 的命令行程序允许您从命令行进行基于堆栈图的分析和查找。

CLI 可以按如下方式运行

  1. (已安装) 使用 Cargo 按如下方式安装 CLI

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

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

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

    cargo run --features cli --
    

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

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

    tree-sitter-stack-graphs-python index SOURCE_DIR
    

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

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

    tree-sitter-stack-graphs-python status SOURCE_DIR
    

    要清理数据库并从头开始,请运行

    tree-sitter-stack-graphs-python clean
    

    通过传递 --delete 标志,不仅可以清空数据库,还可以删除它。这在版本更新后可能会出现 不支持的数据库版本 错误时很有用。

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

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

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

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

开发

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

项目组织如下

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

运行测试

按照以下方式运行测试:

cargo test

该项目由一个库和一个命令行界面(CLI)组成。默认情况下,运行 cargo 只适用于库。要同时运行库和CLI的 cargo 命令,请添加 --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 获取示例和文档链接。

依赖项

~13–26MB
~465K SLoC