SuperAPI AI 工具集

ast-grep

编程与开发

查看项目

更新于 10-16 05:06

技能介绍

用途:ast-grep 是基于 AST(抽象语法树)的代码搜索、linting 和大规模代码重写工具,可做语法感知的搜索、结构化分析与批量代码转换,常用于重构、代码审计、API 迁移等场景。

主要能力:1)语法感知搜索,用模式匹配代码结构,如 ast-grep --lang python -p "def $FUNC($$$ARGS):";2)基于 AST 的 linting,如 ast-grep scan -r sgconfig.yml;3)批量代码重写,如 ast-grep run -p "oldFunction($$$ARGS)" -r "newFunction($$ARGS)" --lang ts;4)规则测试,如 ast-grep test -r rule.yml;5)支持 YAML 规则,包含原子规则(pattern、kind、regex、nthChild、range)、关系规则(inside、has、precedes、follows、stopBy、field)与组合规则(all、any、not、matches);元变量有 $VAR(单节点捕获)、$$VAR(单未命名捕获)、$$$VAR(多节点捕获)、$_VAR(非捕获)。

使用方式:需先安装,macOS 用 brew install ast-grep,Linux 用 cargo install ast-grep,验证用 ast-grep --version。规则开发流程为理解查询、编写示例代码、编写规则、测试规则、搜索代码库;复杂规则建议先测试再应用,使用关系规则时常需 stopBy: end 确保搜索到末尾。

适用场景:查找特定代码模式、重构代码、代码审计、API 迁移等。

限制:需要安装;模式语法需熟悉 AST;大规模重构前建议备份代码;资料未提供收费、价格、平台与效果等信息。