这个一年前的项目有很多有趣的事情。
sg(ast-grep 的别名)是一个 CLI 工具,用于对代码运行基于 AST 的搜索,在 Tree-sitter 解析库之上用 Rust 构建。您可以运行这样的命令:
sg -p ‘等待await_me_maybe($ARG)’ 数据集–lang python
以语法感知的方式在数据集目录中搜索与搜索模式匹配的代码。
它适用于 19 种不同的语言,并且还可以处理搜索和替换,因此它可以作为强大的语法感知重构工具。
我最喜欢的细节是它的包装方式。您可以使用 Homebrew、Cargo、npm 或 pip/pipx 安装 CLI 实用程序 – 每一个都会为您提供一个可以开始运行的 CLI 工具。除此之外,它还提供 Rust、JavaScript 和 Python 的 API 绑定!
通过黑客新闻
原文: https://simonwillison.net/2023/Dec/10/ast-grep/#atom-everything