用途:该技能帮助把自然语言查询翻译为 ast-grep 规则,用抽象语法树(AST)模式按代码结构而非纯文本进行搜索,适合在大代码库中做精确的结构化代码搜索与分析。
主要能力:支持用 pattern 匹配简单结构,用 kind 配合 has/inside 等关系规则匹配复杂结构,用 all、any、not 组合逻辑;可查找特定语言构造、带特定参数的函数调用、缺少错误处理等模式。
使用方式:先明确查询目标与语言,写一段示例代码存为临时文件;再编写规则(如 id、language、rule 字段的 YAML),关系规则建议加 stopBy: end;随后用 CLI 测试。快速迭代可用 ast-grep scan --inline-rules "..." --stdin,复杂规则推荐 ast-grep scan --rule test_rule.yml test_example.js。简单模式搜索用 ast-grep run --pattern 'console.log($ARG)' --lang javascript /path/to/project;复杂规则搜索用 ast-grep scan --rule my_rule.yml /path/to/project。可用 --debug-query=cst/ast/pattern 查看 AST 结构辅助调试,--json 输出结构化结果。内联规则中元变量需转义,如 $VAR 或使用单引号。
适用场景:需要按代码结构搜索、定位特定语言构造、执行文本搜索无法完成的复杂代码查询时。
限制:资料未提供安装方式、支持语言清单、性能与收费等信息,暂未提供。