`scan --inline-rules` 无论是否使用 `--config`,都不会将 `utilDirs` 中的全局工具绑定到全局变量中
作者: bsamiee创建于 2026年9月6日更新于 2026年9月8日
标签enhancement
(原始内容存档于2013-10-12). Ast-grep 04.5.3, macOS arm64.
sgconfig.yml'宣布统治者'和使用者'。 “RuleDirs”下的一个规则文件,通过“matches:<util-id>>负载和通过“ast-grep测试”来引用全局用法。 同一规则机构通过`扫描-内在规则'失败了规则解释“Rule <util-id'没有定义”,以每一种配置形式:
- 从工程根上跑出,通过上行走发现`sgconfig.yml'
- 使用`-c sgconfig.yml'运行
- 从不相关的目录中取出 " -- config/abs/path/sgconfig.yml "
配置读于这些行中:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 因此, -- -- 配置 ' 达到习惯语言 ' 和语言Globs',用于内在规则,但不用于`使用 ' 。
复制:
嘘
乌蒂尔斯/hook.yml
id:钩子
语言:tsx
规则 : {kind: 箭头 功能}
Sgconfig.yml (英语).
规则Dirs:[规
乌蒂尔迪尔斯:[提 printf “ const f = () \ 1;\n” — config sgconfig. yml — inline- rules $'id: p\n 语言: tsx\nrule: {matches: hook}} — json - stdin
错误: 无法解析规则 INLINLE RULES... 规则`hook' 没有定义 。
`UtilDirs ' 的文件指出,从这些目录中发现全球公用事业规则,并以`matches ' 为参考,“inline-rules”没有例外。 ‘-inline-rules'文档将这个选项描述为运行一条规则"而不首先将其保存到一个文件中",它读作与同一决议相同的规则. 第588号问题认定,`扫描规则 ' 作为一种无项目形式设计地绕过全球规则;`内在规则'与明确的`----------------------- ' 是答案不涵盖的情况。
预期:当`-配置'(或已发现的`sgconfig.yml')出现时,`扫描-内含规则'解决`匹配:`Util Dirs ' 中的`全球使用 ' 问题,就像`Rules Dirs'下的一条规则那样。 如果遗漏是故意的,则 " 内在规则 " 和 " 用户参考页 " 可以说明。
为什么它很重要: MCP 服务器和编辑器集成(ast-grep-mcp preptents ‘-config <sgconfig>`' to every call and run ‘scan-inline-rules') 无法从一个取而代之的规则重用一个项目的用法库,所以每个取而代之的规则都会将取而代之的是取而代之的用法体.内容来源: ast-grep/ast-grep