SuperAPI AI 工具集

moai-tool-ast-grep

编程与开发

查看项目

更新于 10-16 01:17

技能介绍

用途:基于抽象语法树(AST)做结构化代码搜索、lint 与重构,弥补正则搜索无法识别嵌套调用等语法结构的不足。适用于模式搜索、跨文件语义重构、SQL 注入/XSS 等安全扫描、API 迁移与语法级代码风格约束。

主要能力:支持 Python、JavaScript、TypeScript、Go、Rust、Java、Kotlin、C、C++、Ruby、Swift、C#、PHP、Scala、Elixir、Lua、HTML、Vue、Svelte 等 40 多种语言。核心命令包括:sg run 做模式搜索,sg scan 配合 sgconfig.yml 做规则扫描,sg run 配合 rewrite 做代码转换,sg test 校验规则定义。模式语法:$VAR 捕获单个节点,$$$ARGS 捕获零个或多个节点,$$_ 匿名单节点匹配。

安装:macOS 用 brew install ast-grep;跨平台用 npm install -g @ast-grep/cli;Rust 用 cargo install ast-grep。

用法示例:sg -p 'authenticate($$$)' --lang python -r src/ 查找匹配的函数调用;sg -p 'useState($$)' --lang tsx -r src/ 查找 React hooks。复杂转换可写 YAML 规则,在 rule 中设 pattern,在 fix 中设替换模式,再用 sg scan 执行。规则支持 inside、has、follows、precedes、all、not 等关联与组合条件,可限制搜索作用域或做包含检查。JSON 输出可重定向用于 CI/CD。

集成:在 MoAI-ADK 中作为 AST_ANALYZER 类型注册,PostToolUse Hook 在 Write/Edit 后自动做安全扫描,Bash(sg:) 与 Bash(ast-grep:) 自动放行。与 moai-workflow-testing、moai-foundation-quality、moai-domain-backend 等技能配合使用。

限制:使用前需自行安装 sg CLI;具体规则文件、语言配置与多文件转换细节需参考模块文档(modules/pattern-syntax.md、modules/security-rules.md、modules/refactoring-patterns.md、modules/language-specific.md)。其他收费、平台支持或效果数据暂未提供。