@adonisjs/slint-ast-grep (英语)
运行 ast- grep 图像 YAML规则通过ESLint.
将 Lint 规则写成 ast- grep YAML, 用 ast- grep CLI 测试它们, 并用 ESLint 执行它们和您的其他规则。 匹配运行 @ast-grep/napi 因此,编辑器, --cache, 重度覆盖, 并禁用注释 .
安装
npm i -D @adonisjs/eslint-ast-grep
使用量
// eslint.config.js
import { configApp } from '@adonisjs/eslint-config'
import { astGrep } from '@adonisjs/eslint-ast-grep'
export default configApp(...astGrep(['./rules', '@adonisjs/core/rules']))
astGrep 接受一个源或数组。 一个来源是:
- 本地文件或目录,从
./, (中文(简体) ),../,或/,从当前工作目录中解决 - 已安装软件包内的路径, 例如
@scope/pkg/rules,通过行走找到node_modules从当前工作目录。 软件包不需要导出目录 .
逐一搜索目录 .yml 财务报告和审定财务报表 .yaml 文件,一个文件可能持有多个YAML文件。 重复规则 ID 是一个错误.
选项 :
astGrep('./rules', {
root: import.meta.dirname, // where sources resolve from, defaults to process.cwd()
namespace: 'ast-grep', // rule id prefix, "ast-grep/<id>" by default
})
YAML 字段映射到 ESLint 的方式
整个YAML文档被交给了 ast -grep 作为匹配者,所以 rule, (中文(简体) ), constraints, (中文(简体) ), utils,以及 transform 表现得跟ast -grep记录的一样.
| YAML 字段 | ESLint 行为 |
|---|---|
id | 创建规则 ast-grep/<id>。 。 。 . |
language | 选择语法。 NAPI捆绑了JavaScript,TypeScript,和TSX. |
files, (中文(简体) ), ignores | 用 ESLint glob 语义来限定规则范围. 无 files规则在JS/TS文件上生效. |
severity | error • 错误; hint, (中文(简体) ), info, (中文(简体) ), warning 警告; off 关闭。 默认提示 . |
message | 内插 $VAR, (中文(简体) ), $$VAR,以及 $$$VAR 捕取并变相. 默认为 id. |
note | 附电为第二句. |
url | 设置规则的文档 URL. |
fix | 不支持 . 装入失败, 错误命名规则 . |
ESLint拥有文件发现,因此仅检查已存在的文件ESLint. labels, (中文(简体) ), metadata,以及来自 sgconfig.yml 例如全球功用被忽略.
测试规则
使用 ast- grep CLI 。 试用规则 ast-grep test 在ESLint下运行不变.