埃斯林特- 插图- 德印
这是神秘画/斯林特-插图-德印的更新叉.
运行的插件 打印 以 ESLint 格式化代码.
* 安装
使用 无 或兼容的工具.
$ npm install -D eslint @ben_12/eslint-plugin-dprint
然后安装 打印 用于语言格式的插件.
$ npm install -D @dprint/dockerfile
$ npm install -D @dprint/json
$ npm install -D @dprint/markdown
$ npm install -D @dprint/toml
$ npm install -D @dprint/typescript
$ npm install -D dprint-plugin-malva
$ npm install -D dprint-plugin-markup
$ npm install -D dprint-plugin-yaml
$ npm install -D dprint-plugin-graphql
使用量
写你的 ESLint 配置 。 例如, 有打字码 :
import { defineConfig } from "eslint/config";
import tsPlugin from "@typescript-eslint/eslint-plugin";
import tsParser from "@typescript-eslint/parser";
import dprint from "@ben_12/eslint-plugin-dprint";
module.exports = defineConfig([
{
files: ["**/*.ts", "**/*.js"],
languageOptions: {
parser: tsParser
},
plugins: {
"@typescript-eslint": tsPlugin,
"@ben_12/dprint": dprint,
},
rules: {
...tsPlugin.configs["eslint-recommended"].rules,
...tsPlugin.configs["recommended"].rules,
...tsPlugin.configs["strict"].rules,
...dprint.configs["typescript-recommended"].rules
"@ben_12/dprint/typescript": [
"error",
{
// Use dprint JSON configuration file (default: "dprint.json")
// It may be created using `dprint init` command
// See also https://dprint.dev/config/
configFile: "dprint.json",
config: {
// The TypeScript configuration of dprint
// See also https://dprint.dev/plugins/typescript/config/
},
},
],
},
},
]);
对于遗留的eslint(slintrc配置),
module.exports = {
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@ben_12/dprint/typescript-recommended",
],
rules: {
"@ben_12/dprint/typescript": [
"error",
{
// Use dprint JSON configuration file (default: "dprint.json")
// It may be created using `dprint init` command
// See also https://dprint.dev/config/
configFile: "dprint.json",
config: {
// The TypeScript configuration of dprint
// See also https://dprint.dev/plugins/typescript/config/
},
},
],
},
};
然后运行 ESLint 与 --fix来啊!
通过 settings
默认情况下, 插件会在模块加载时通过动态加载每个 dprint formatter require()
对应同位素包(@dprint/typescript, (中文(简体) ), dprint-plugin-yaml(中文(简体) ). 这对
大多数设置, 但它依赖于正在安装的可选对等依赖 财务报告和审定财务报表 可通过
节点解相. 一些捆绑和捆绑的配置软件包(任何做静态模块图的软件包)
分析,例如:. 包装只跟随真实 import
语句,因此 Dprint 插件永远不会在捆绑中结束 。 在这种情况下,插件日志
Plugin not found: … 对于每个被衬住的文件和规则 沉默地变成了一个不开放.
通过 ESLint 的预溶物可以避免这种情况 settings设置不是
序列化或 structuredCloned 由ESLint提供,因此可以携带运行时对象(模块,缓冲器,
预建的格式器)。 当以这种方式提供格式时, 插件直接使用并跳过
动态 require() 搜索(以及相关的"无法找到"警告).
每个格式条目的接受形状 :
- 对象为
getPath(): string(导出形状的是@dprint/typescript, (中文(简体) ),@dprint/json, (中文(简体) ),@dprint/markdown, (中文(简体) ),@dprint/toml, (中文(简体) ),@dprint/dockerfile(中文(简体) ) - 对象为
getBuffer(): Buffer | Uint8Array(遗产形状,以前被一些@dprint/*软件包) - 原产
Buffer编号 :Uint8Array编号 :ArrayBuffer插件的原字节 - 预建
Formatter返回时间@dprint/formatter是因为createFromBuffer
示例(平面配置) :
import { defineConfig } from "eslint/config";
import dprint from "@ben_12/eslint-plugin-dprint";
import typescriptFormatter from "@dprint/typescript";
export default defineConfig([
{
files: ["**/*.ts"],
plugins: { "@ben_12/dprint": dprint },
settings: {
"@ben_12/dprint": {
formatters: {
typescript: typescriptFormatter,
},
},
},
rules: {
"@ben_12/dprint/typescript": ["error", { config: { /* dprint config */ } }],
},
},
]);
设置密钥是插件命名空间( N)@ben_12/dprint) (中文(简体) ). 内部 formatters,关键是
规则名称( e)typescript, (中文(简体) ), json, (中文(简体) ), markdown, (中文(简体) ), toml, (中文(简体) ), dockerfile, (中文(简体) ), malva, (中文(简体) ), markup, (中文(简体) ), yaml, (中文(简体) ),
graphql) (中文(简体) ).
g-平面插件( r)yaml, (中文(简体) ), malva, (中文(简体) ), markup, (中文(简体) ), graphql(中文(简体) )
这个 @dprint/* 软件包可以直接被导入和传递,如上文的例子.
G型飞机包(dprint-plugin-yaml, (中文(简体) ), dprint-plugin-malva, (中文(简体) ), dprint-plugin-markup, (中文(简体) ),
dprint-plugin-graphql(没有JS入境点,只有船) plugin.wasm,所以打电话者必须
解析并读取原文件并传递结果 createFromBuffer (或截至
原产 BufferSource) (中文(简体) ). 示例 dprint-plugin-graphql数字 :
import { defineConfig } from "eslint/config";
import dprint from "@ben_12/eslint-plugin-dprint";
import { createFromBuffer } from "@dprint/formatter";
import fs from "node:fs";
const graphqlFormatter = createFromBuffer(
fs.readFileSync(new URL(import.meta.resolve("dprint-plugin-graphql/plugin.wasm"))),
);
export default defineConfig([
{
files: ["**/*.graphql"],
plugins: { "@ben_12/dprint": dprint },
settings: {
"@ben_12/dprint": {
formatters: { graphql: graphqlFormatter },
},
},
rules: {
"@ben_12/dprint/graphql": ["error", { config: { /* dprint config */ } }],
},
},
]);
相同的模式( 匹配包和规则名) 适用于 yaml, (中文(简体) ), malva,以及
markup。 。 。 .
对于未被分解的 Eslint 文件,如 标记下或粘贴文件, 您可以使用 @ben 12/slint-simple-parser (英语) 作为解析器.
import { defineConfig } from "eslint/config";
import dprint from "@ben_12/eslint-plugin-dprint";
import simpleParser from "@ben_12/eslint-simple-parser";
export default defineConfig([
{
files: ["**/*.md"],
plugins: {
"@ben_12/dprint": dprint,
},
languageOptions: {
parser: simpleParser,
},
rules: dprint.configs["markdown-recommended"].rules,
},
]);
现行规则
| 规则 | 说明 |
|---|---|
| @ ben 12/dprint/ dockerfile (中文(简体) ) | 格式嵌入文件代码 @ dprint/ docker file (缩写)。 。 。 . |
| @ben 12/dprint/json (英语) | 格式化 json 代码 @dprint/json (英语)。 。 。 . |
| @ ben 12/dprint/ markdown (中文(简体) ) | 格式化下标码 @ dprint/ markdown (帮助)。 。 。 . |
| @ben 12/dprint/toml (英语) | 格式化 Toml 代码 @dprint/toml (英语)。 。 。 . |
| @ ben 12/dprint/typescript | 格式字迹代码 @dprint/typescript。 。 。 . |
| @ben 12/dprint/malva (英语) | 格式 cs/ scs/ 少/ ass 代码 马尔瓦。 。 。 . |
| @ ben 12/dprint/ 标记 | 格式 HTML/Vue/Svelte/... 代码 标记( fmt)。 。 。 . |
| @ben 12/dprint/yaml (英语) | 格式化 YAML 代码 漂亮小区。 。 。 . |
| @ben 12/dprint/graphql (英语) | 格式图形QL 代码 漂亮图形ql。 。 。 . |
可用的配置
- 将 [plugin:@ben 12/dprint/ recommend] 或 [plugin:@ben 12/dprint/disabable-conflict-rules] 配置到您最后的
extends列表,以确保来自其他基础配置的无效冲突规则.
QQ 更改日志
见 GitHub 发布。 。 。 .
捐款
欢迎献礼!
请使用 GitHub 的问题/PR .
开发工具
npm test进行测试 它生成代码覆盖到coverage目录.npm run watch编辑文件时进行测试 .npm version <patch|minor|major>...跳出一个新的版本.