likes
comments
collection
share

ESLint 正式支持 JSON 和 Markdown 检查ESLint 团队近日宣布,ESLint 现已支持对 JSO

作者站长头像
站长
· 阅读数 19

ESLint 团队近日宣布,ESLint 现已支持对 JSON 和 Markdown 文件进行代码检查。这标志着 ESLint 向提供语言无关的源代码代码检查平台迈出了重要的一步。

背景

早在七月份,ESLint 团队就发布了未来发展计划,提到将 ESLint 转型为更通用的 Linter,能够支持多种编程语言。经过几个月的努力,团队成功地提取了与 JavaScript 特定相关的核心功能,使 ESLint 现在能够对 JSON 和 Markdown 文件进行代码检查。

JSON 代码检查实现

JSON 的代码检查是通过官方支持的 @eslint/json 插件实现的。该插件支持 JSON、JSONC(带注释的 JSON)和 JSON5 的解析。用户可以通过以下命令安装插件:

npm install @eslint/json -D

安装完成后,需更新配置文件:

import json from "@eslint/json";

export default [
    {
        plugins: {
            json,
        },
    },

    // 检查 JSON 文件
    {
        files: ["**/*.json"],
        language: "json/json",
        rules: {
            "json/no-duplicate-keys": "error",
        },
    },
];

该插件内置了多个规则,团队也期待更多的建议。如果您有规则的想法,欢迎提交问题。

有关配置 JSON 代码检查的更多信息,请查看 README 文档。

Markdown 代码检查实现

Markdown 的代码检查则是通过 @eslint/markdown 插件实现的,这是 eslint-plugin-markdown 插件的下一代版本,后者仅包含处理器。新插件支持 CommonMark 和 GitHub-Flavored Markdown 的解析和规则。用户可以通过以下命令安装插件:

npm install @eslint/markdown -D

同样,安装后需要更新配置文件:

// eslint.config.js
import markdown from "@eslint/markdown";

export default [
    {
        files: ["**/*.md"],
        plugins: {
            markdown
        },
        language: "markdown/commonmark",
        rules: {
            "markdown/no-html": "error"
        }
    }    
];

与 JSON 插件类似,Markdown 插件同样内置了多个规则,团队也期待更多的建议。有关配置 Markdown 代码检查的更多信息,请查看 README 文档。

自定义规则与代码探索器

@eslint/json@eslint/markdown 插件将源代码解析为抽象语法树(AST),并遍历 AST 以运行规则,这与 ESLint 处理 JavaScript 的方式相同。这意味着用户可以为 JSON 和 Markdown 编写自定义规则,主要区别在于 AST 格式。JSON 使用 Momoa AST,而 Markdown 使用 mdast。为了帮助用户检查不同的 AST 格式,团队推出了代码探索器(Code Explorer)。

ESLint 正式支持 JSON 和 Markdown 检查ESLint 团队近日宣布,ESLint 现已支持对 JSO

代码探索器允许用户查看和探索不同语言的 AST,以帮助创建自定义规则。对于 JSON 和 Markdown,用户将获得可扩展的 AST 视图,而 JavaScript 则可以查看 AST、作用域和代码路径信息。未来,团队将继续更新代码探索器,添加新语言和功能,以帮助用户创建自定义规则。

最重要的是,代码探索器是开源的,欢迎大家共同参与改进。

编写自己的语言插件

ESLint 的语言设计使其能够通过新的 languages 键包含在任何插件中。@eslint/json@eslint/markdown 插件不仅提供 JSON 和 Markdown 的代码检查功能,同时也作为创建自定义语言的示例。用户可以查看语言文档,以了解如何创建自己的语言插件。

结论

支持 JavaScript 以外的语言代码检查一直是 ESLint 的发展路线图中的一部分,因此能够实现这一里程碑令人振奋。团队的长期目标是确保 ESLint 能够检查 Web 项目中使用的任何类型文件,无论是通过官方支持的语言插件还是社区编写的插件。目前,JavaScript、JSON 和 Markdown 的支持使得这一目标更加接近。

最后,ESLint 是一个独立的开源项目,由一群志愿者在业余时间维护。如果您喜欢使用 ESLint,请与您的公司讨论赞助该项目的可能性。

转载自:https://juejin.cn/post/7423398325195669513
评论
请登录