用途:该技能使用 ast-grep 进行基于 AST 的代码模式匹配,适合按结构而非关键词查找代码,例如查找具有特定参数数量的函数、继承某类的类、数据库查询或错误处理模式,也用于精确的代码重构。
主要能力:支持 20 多种语言(通过 tree-sitter),包括 JavaScript、TypeScript、Python、Go、Rust、Java、C、C++、C#、Kotlin、Swift、PHP、Ruby、Lua、Elixir、HTML、CSS、JSON、Bash、Thrift,通过 --lang 标志指定语言。模式语法使用 $NAME 表示单个节点/标识符,$$$ 表示零个或多个语句/节点,$$ 表示零个或多个语句块,$_ 表示匿名通配符。典型速度小于 50ms 每次搜索。
使用方式:调用 Skill({ skill: 'code-structural-search', args: 'pattern-here --lang ts' })。建议先用 ripgrep 做广泛搜索缩小候选文件,再用 ast-grep 做结构化精炼,并可结合语义搜索。
限制与注意事项:必须始终指定 --lang,否则会产生误报;不要用正则做结构化匹配;模式需先在已知匹配上测试;通配符必须用 $NAME、$$$ 等 ast-grep 语法,不能用 * 或 .。资料未提供收费、价格或平台信息。