用途:借助 ast-grep 与 tree-sitter 将代码解析为 AST,编写 YAML 规则进行精确的代码搜索、检查与重写,适用于 lint 规则、代码现代化和 API 迁移。
主要能力:规则以 YAML 定义,包含 id、language、rule、fix、message 等字段。支持 pattern 匹配代码结构、kind 匹配 AST 节点类型,以及 all、any、not、has、inside 等组合与关系规则;可用 $VAR 匹配单节点、$$$ARGS 匹配多节点、$_VAR 表示非捕获。
使用方式:项目级扫描需在根目录提供 sgconfig.yml,通过 ruleDirs 指定规则目录,然后运行 ast-grep scan;也可用 ast-grep scan --config 指定配置。单条规则验证用 ast-grep scan -r rules/no-console-log.yml src/,自动修复加 --update-all。ast-grep run -p 可独立使用,不依赖 sgconfig.yml。调试 AST 结构可用 ast-grep -p 'console.log($ARG)' --debug-query ast。
适用场景:CI 检查、编辑器提示、批量代码重写与迁移。
限制:ast-grep scan 依赖 sgconfig.yml;资料未提供收费、价格、平台及效果等信息。