Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
docs: Document extending plugin with new config (#16394)
* docs: Document extending plugin with new config

Document how to extend a plugin configuration using the new ESLint configuration file type system.

Fixes #16310

* incorporate @nzakas feedback
  • Loading branch information
bpmutter committed Oct 12, 2022
1 parent dd0c58f commit d336cfc
Showing 1 changed file with 32 additions and 1 deletion.
33 changes: 32 additions & 1 deletion docs/src/user-guide/configuring/configuration-files-new.md
Expand Up @@ -329,7 +329,13 @@ For historical reasons, the boolean value `false` and the string value `"readabl

### Using plugins in your configuration

Plugins are used to share rules, processors, configurations, parsers, and more across ESLint projects. Plugins are specified in a configuration object using the `plugins` key, which is an object where the name of the plugin is the property name and the value is the plugin object itself. Here's an example:
Plugins are used to share rules, processors, configurations, parsers, and more across ESLint projects.

#### Using plugin rules

You can use specific rules included in a plugin. To do this, specify the plugin
in a configuration object using the `plugins` key. The value for the `plugin` key
is an object where the name of the plugin is the property name and the value is the plugin object itself. Here's an example:

```js
import jsdoc from "eslint-plugin-jsdoc";
Expand Down Expand Up @@ -390,6 +396,31 @@ export default [

This configuration object uses `jsd` as the prefix plugin instead of `jsdoc`.

#### Using configurations included in plugins

You can use a configuration included in a plugin by adding that configuration
directly to the `eslint.config.js` configurations array.
Often, you do this for a plugin's recommended configuration. Here's an example:

```js
import jsdoc from "eslint-plugin-jsdoc";

export default [
// configuration included in plugin
jsdoc.configs.recommended,
// other configuration objects...
{
files: ["**/*.js"],
plugins: {
jsdoc: jsdoc
}
rules: {
"jsdoc/require-description": "warn",
}
}
];
```

### Using processors

Processors allow ESLint to transform text into pieces of code that ESLint can lint. You can specify the processor to use for a given file type by defining a `processor` property that contains either the processor name in the format `"pluginName/processorName"` to reference a processor in a plugin or an object containing both a `preprocess()` and a `postprocess()` method. For example, to extract JavaScript code blocks from a Markdown file, you might add this to your configuration:
Expand Down

0 comments on commit d336cfc

Please sign in to comment.