Home

Awesome

eslint-plugin-dprint-integration

NPM version

Make dprint work with eslint. Works perfectly with virtual files (like codeblocks in markdown).

📦 Installation

$ npm install eslint-plugin-dprint-integration -D
$ yarn add eslint-plugin-dprint-integration -D
$ pnpm add eslint-plugin-dprint-integration -D

🚀 Usage

Basic

Add these line to your eslintrc:

// .eslintrc.js
module.exports = {
	plugins: ["dprint-integration"],
	rules: {
		"dprint-integration/dprint": "error",
	},
};

This will use dprint's default config.

Or:

// .eslintrc.js
module.exports = {
	extends: ["plugin:dprint-integration/recommended"],
};

To turn off the conflicting stylish eslint rules (like eslint-config-prettier), just add:

// .eslintrc.js
module.exports = {
	extends: ["plugin:dprint-integration/disable-conflict"],
};

Advanced

You can pass config to the plugin:

// .eslintrc.js
module.exports = {
	plugins: ["dprint-integration"],
	rules: {
		"dprint-integration/dprint": [
			"error",
			// Global Config (will pass to the dprint formatter directly): Available at https://dprint.dev/config/
			{
				lineWidth: 80,
			},
			// Plugin Specific Config (will pass to the dprint plugins): Available at https://dprint.dev/plugins/
			{
				typescript: {
					// This applies to both JavaScript & TypeScript
					"quoteStyle": "preferSingle",
					"binaryExpression.operatorPosition": "sameLine",
				},
				json: {},
				toml: {},
				markdown: {},
				dockerfile: {},
				malva: {},
				markup: {},
			},
		],
	},
};

If you want, you can use dprint.json:

// .eslintrc.js
module.exports = {
	plugins: ["dprint-integration"],
	rules: {
		"dprint-integration/dprint": [
			"error",
			// Global Config (will pass to the dprint formatter directly): Available at https://dprint.dev/config/
			{
				// A special option to use dprint.json
				useDprintJson: true,
				// Or a specified path to dprint.json
				// useDprintJson: "path/to/dprint.json",
			},
			// Plugin Specific Config (will pass to the dprint plugins): Available at https://dprint.dev/plugins/
			{},
		],
	},
};

📝 License

MIT. Made with ❤️ by Ray