用途:grit 使用声明式查询语言 GritQL,基于 tree-sitter 对源代码做结构化搜索与重写,适合跨语言重构和规模化 AST 变换。
主要能力:反引号中的任意合法代码片段即为模式,匹配按 AST 结构进行,自动忽略空白与格式差异。支持就地替换、删除匹配(重写为点号),可用 -l 指定语言(如 ts、py)。内置标准库提供 200 多个具名模式,例如 no_console_log、react_to_hooks,可用 grit list 列出。
使用方式:安装命令为 curl -fsSL https://docs.grit.io/install | bash 或 npm install --location=global @getgrit/cli。搜索示例:grit apply 'console.log($_)' ./src/;替换示例:grit apply 'console.log($msg) => winston.log($msg)' ./src/;删除示例:grit apply '`debugger;' => .' ./src/。建议先用 --dry-run 验证。可将模式保存到 .grit/patterns/ 下的 .md 或 .grit 文件,按名称运行,并用 grit check 作为 lint 强制执行。可在 .grit/grit.yaml 中导入远程模式。
限制与提示:模式必须是反引号内的合法代码,裸元变量无效;元变量命名规则为 $lowercase_snake_case,匿名用 $_,展开用 $...。可用 GritQL Studio 调试语法树。其他细节暂未提供。