New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs: Custom Parsers cleanup/expansion #16887
docs: Custom Parsers cleanup/expansion #16887
Conversation
|
Name | Link |
---|---|
3f1dc78 | |
https://app.netlify.com/sites/docs-eslint/deploys/6404e63bf8795300086fa57a | |
https://deploy-preview-16887--docs-eslint.netlify.app/extend/custom-parsers | |
To edit notification comments on pull requests, go to your Netlify site settings.
docs/src/extend/custom-parsers.md
Outdated
```javascript | ||
// awesome-custom-parser.js | ||
var espree = require("espree"); | ||
exports.parseForESLint = function(code, options) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
question for reviewers: this syntax is a little different from what i'm used to seeing with Node.js.
to my understanding, this is equivalent to the following:
function parseForESLint(code, options){
// function definition
}
module.exports = { parseForESLint }
i think this module.exports = ...
pattern is more common.
would we be open to adjusting this example to use the module.exports = ...
pattern?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're correct, the two are equivalent. No objections to using the pattern you suggest.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
adding
docs/src/extend/custom-parsers.md
Outdated
|
||
## Packaging a Custom Parser | ||
|
||
TODO: Add info on turning into a package |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
to reviewers, would you mind providing some high level direction on what should be included here? perhaps a simple example with a bit of description?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hehe, didn't realize we left a TODO in there.
Basically, what this section should be is how to create an npm package out of your custom parser. I imagine it would simply be:
- Create your npm package
- Ensure that
main
inpackage.json
points to your parser file - Publish your npm package
- Show how to use the npm package in a config file
docs/src/extend/custom-parsers.md
Outdated
"parser": "./path/to/awesome-custom-parser.js" | ||
} | ||
```javascript | ||
// TODO: have a simple example here w parse and parserOptions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
to reviewers, would you mind providing some high level direction on what should be included here? perhaps a simple example with a bit of description?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that the other example on that page is already quite clear. But you would like to add a new example with parse
rather than parseForESLint
if I understand correctly?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, that's correct
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could show just a very simple parser, like one that calls espree and prints a message to the console. This one for example will print the time required to parse each file:
const espree = require("espree");
exports.parse = function (code, options) {
const label = `Parsing file "${options.filePath}"`;
console.time(label);
const ast = espree.parse(code, options);
console.timeEnd(label);
return ast; // Only the AST is returned.
};
As I understand it, the only difference is that parse
only returns the AST, whereas parseForESLint
also returns additional values that let you customize the behavior of the parser even more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As I understand it, the only difference is that parse only returns the AST, whereas parseForESLint also returns additional values that let you customize the behavior of the parser even more.
That's correct. The usage is exactly the same. I think @fasttime's example is solid -- anything where parse
is calling another parser and somehow manipulating the AST result before returning it would also be appropriate.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thank you for the feedback! also TIL about console.time()
docs/src/extend/custom-parsers.md
Outdated
1. Create a custom parser following the [Creating a Custom Parser](#creating-a-custom-parser) section above. | ||
1. Create an npm package for the custom parser. | ||
1. In your `package.json` file, set the [`main`](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#main) field as the file that exports your custom parser. | ||
1. Publish the npm package. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I won't nitpick on this, but I'm afraid that "Create an npm package" and "Publish the npm package" are not self-explanatory. Maybe we could like these steps to npm init
and npm publish
respectively, or just show the commands to enter in the shell?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the wording is okay, but would be helpful to link out to some supporting documentation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good! Just a couple of notes.
docs/src/extend/custom-parsers.md
Outdated
1. Create a custom parser following the [Creating a Custom Parser](#creating-a-custom-parser) section above. | ||
1. Create an npm package for the custom parser. | ||
1. In your `package.json` file, set the [`main`](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#main) field as the file that exports your custom parser. | ||
1. Publish the npm package. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the wording is okay, but would be helpful to link out to some supporting documentation.
docs/src/extend/custom-parsers.md
Outdated
|
||
For a complex example of a custom parser, refer to the [`@typescript-eslint/parser`](https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/parser) source code. | ||
|
||
A simple custom parser that logs `"foo"` to the console when it processes a node: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do we mean by "when it processes a node"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, this description is inaccurate. What this is doing is providing a context.parserServices.foo()
for rules.
Co-authored-by: Nicholas C. Zakas <nicholas@humanwhocodes.com> Co-authored-by: Nitin Kumar <snitin315@gmail.com>
@nzakas, @fasttime, @mdjermanovic, @snitin315, ready for re-review! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Just waiting for others to verify their comments were addressed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Leaving it open for others to review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just left a suggestion.
Co-authored-by: Francesco Trotta <github@fasttime.org>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks! Leaving open for @mdjermanovic to review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [eslint](https://eslint.org) ([source](https://github.com/eslint/eslint)) | devDependencies | minor | [`8.35.0` -> `8.36.0`](https://renovatebot.com/diffs/npm/eslint/8.35.0/8.36.0) | --- ### Release Notes <details> <summary>eslint/eslint</summary> ### [`v8.36.0`](https://github.com/eslint/eslint/releases/tag/v8.36.0) [Compare Source](eslint/eslint@v8.35.0...v8.36.0) #### Features - [`c89a485`](eslint/eslint@c89a485) feat: Add `checkJSDoc` option to multiline-comment-style ([#​16807](eslint/eslint#16807)) (Laurent Cozic) - [`f5f5e11`](eslint/eslint@f5f5e11) feat: Serialize parsers/processors in flat config ([#​16944](eslint/eslint#16944)) (Nicholas C. Zakas) - [`4799297`](eslint/eslint@4799297) feat: use [@​eslint-community](https://github.com/eslint-community) dependencies ([#​16784](eslint/eslint#16784)) (Michaël De Boey) #### Bug Fixes - [`92c1943`](eslint/eslint@92c1943) fix: correctly iterate files matched by glob patterns ([#​16831](eslint/eslint#16831)) (Nitin Kumar) #### Documentation - [`b98fdd4`](eslint/eslint@b98fdd4) docs: Update README (GitHub Actions Bot) - [`caf08ce`](eslint/eslint@caf08ce) docs: fix estree link in custom formatters docs ([#​16967](eslint/eslint#16967)) (Milos Djermanovic) - [`3398431`](eslint/eslint@3398431) docs: Custom Parsers cleanup/expansion ([#​16887](eslint/eslint#16887)) (Ben Perlmutter) - [`19d3531`](eslint/eslint@19d3531) docs: Update README (GitHub Actions Bot) - [`b09a512`](eslint/eslint@b09a512) docs: detect and fix broken links ([#​16837](eslint/eslint#16837)) (Nitin Kumar) #### Chores - [`602b111`](eslint/eslint@602b111) chore: upgrade [@​eslint/js](https://github.com/eslint/js)[@​8](https://github.com/8).36.0 ([#​16978](eslint/eslint#16978)) (Milos Djermanovic) - [`43c2345`](eslint/eslint@43c2345) chore: package.json update for [@​eslint/js](https://github.com/eslint/js) release (ESLint Jenkins) - [`00afb84`](eslint/eslint@00afb84) chore: upgrade [@​eslint/eslintrc](https://github.com/eslint/eslintrc)[@​2](https://github.com/2).0.1 ([#​16977](eslint/eslint#16977)) (Milos Djermanovic) - [`698c5aa`](eslint/eslint@698c5aa) chore: upgrade espree@9.5.0 ([#​16976](eslint/eslint#16976)) (Milos Djermanovic) - [`75acdd2`](eslint/eslint@75acdd2) chore: lint more js files in docs ([#​16964](eslint/eslint#16964)) (Milos Djermanovic) - [`89d9844`](eslint/eslint@89d9844) ci: bump actions/add-to-project from 0.4.0 to 0.4.1 ([#​16943](eslint/eslint#16943)) (dependabot\[bot]) </details> --- ### Configuration📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS42LjAiLCJ1cGRhdGVkSW5WZXIiOiIzNS42LjAifQ==--> Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1820 Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org> Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org> Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
<p>This PR was automatically created by Snyk using the credentials of a real user.</p><br /><h3>Snyk has created this PR to upgrade eslint from 8.29.0 to 8.36.0.</h3>ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project. <hr/> - The recommended version is **7 versions** ahead of your current version. - The recommended version was released **21 days ago**, on 2023-03-10. <details> <summary><b>Release notes</b></summary> <br/> <details> <summary>Package name: <b>eslint</b></summary> <ul> <li> <b>8.36.0</b> - <a href="https://snyk.io/redirect/github/eslint/eslint/releases/tag/v8.36.0">2023-03-10</a></br><h2>Features</h2> <ul> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/c89a485c49450532ee3db74f2638429f1f37d0dd"><code>c89a485</code></a> feat: Add <code>checkJSDoc</code> option to multiline-comment-style (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1552103605" data-permission-text="Title is private" data-url="eslint/eslint#16807" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16807/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16807">#16807</a>) (Laurent Cozic)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/f5f5e11bd5fd3daab9ccae41e270739c836c305e"><code>f5f5e11</code></a> feat: Serialize parsers/processors in flat config (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1602025887" data-permission-text="Title is private" data-url="eslint/eslint#16944" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16944/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16944">#16944</a>) (Nicholas C. Zakas)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/4799297ea582c81fd1e5623d32a7ddf7a7f3a126"><code>4799297</code></a> feat: use <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/eslint-community/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/eslint-community">@ eslint-community</a> dependencies (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1533046272" data-permission-text="Title is private" data-url="eslint/eslint#16784" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16784/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16784">#16784</a>) (Michaël De Boey)</li> </ul> <h2>Bug Fixes</h2> <ul> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/92c1943ba73ea01e87086236e8736539b0eed558"><code>92c1943</code></a> fix: correctly iterate files matched by glob patterns (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1560692397" data-permission-text="Title is private" data-url="eslint/eslint#16831" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16831/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16831">#16831</a>) (Nitin Kumar)</li> </ul> <h2>Documentation</h2> <ul> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/b98fdd413a3b07b262bfce6f704c1c1bb8582770"><code>b98fdd4</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/caf08ce0cc74917f7c0eec92d25fd784dc33ac4d"><code>caf08ce</code></a> docs: fix estree link in custom formatters docs (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1613124150" data-permission-text="Title is private" data-url="eslint/eslint#16967" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16967/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16967">#16967</a>) (Milos Djermanovic)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/3398431574b903757bc78b08c8ed36b7b9fce8eb"><code>3398431</code></a> docs: Custom Parsers cleanup/expansion (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1581420423" data-permission-text="Title is private" data-url="eslint/eslint#16887" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16887/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16887">#16887</a>) (Ben Perlmutter)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/19d3531d9b54e1004318d28f9a6e18305c5bcc18"><code>19d3531</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/b09a512107249a4eb19ef5a37b0bd672266eafdb"><code>b09a512</code></a> docs: detect and fix broken links (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1561144081" data-permission-text="Title is private" data-url="eslint/eslint#16837" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16837/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16837">#16837</a>) (Nitin Kumar)</li> </ul> <h2>Chores</h2> <ul> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/602b11121910a97ab2bc4a95a46dd0ccd0a89309"><code>602b111</code></a> chore: upgrade @ eslint/js@8.36.0 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1619658922" data-permission-text="Title is private" data-url="eslint/eslint#16978" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16978/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16978">#16978</a>) (Milos Djermanovic)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/43c2345c27024aeab6127e6bbfd55c8b70bd317e"><code>43c2345</code></a> chore: package.json update for @ eslint/js release (ESLint Jenkins)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/00afb84e5039874c8745a45c953fceaf0c71c454"><code>00afb84</code></a> chore: upgrade @ eslint/eslintrc@2.0.1 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1619639257" data-permission-text="Title is private" data-url="eslint/eslint#16977" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16977/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16977">#16977</a>) (Milos Djermanovic)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/698c5aad50e628ff00281dbc786e42de79834035"><code>698c5aa</code></a> chore: upgrade espree@9.5.0 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1619608245" data-permission-text="Title is private" data-url="eslint/eslint#16976" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16976/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16976">#16976</a>) (Milos Djermanovic)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/75acdd21c5ce7024252e9d41ed77d2f30587caac"><code>75acdd2</code></a> chore: lint more js files in docs (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1611189845" data-permission-text="Title is private" data-url="eslint/eslint#16964" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16964/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16964">#16964</a>) (Milos Djermanovic)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/89d9844b3151f09b5b21b6eeeda671009ec301e9"><code>89d9844</code></a> ci: bump actions/add-to-project from 0.4.0 to 0.4.1 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1601964850" data-permission-text="Title is private" data-url="eslint/eslint#16943" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16943/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16943">#16943</a>) (dependabot[bot])</li> </ul> </li> <li> <b>8.35.0</b> - <a href="https://snyk.io/redirect/github/eslint/eslint/releases/tag/v8.35.0">2023-02-26</a></br><h2>Features</h2> <ul> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/8e34a04e3a4395bce59bc6acadf84281abc11d18"><code>8e34a04</code></a> feat: add <code>afterHashbangComment</code> option to <code>lines-around-comment</code> rule (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1594414688" data-permission-text="Title is private" data-url="eslint/eslint#16920" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16920/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16920">#16920</a>) (SUZUKI Sosuke)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/c8c0c715a2964cc1859b99f9d4f542675094d1d5"><code>c8c0c71</code></a> feat: Move all and recommended configs into package. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1564820850" data-permission-text="Title is private" data-url="eslint/eslint#16844" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16844/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16844">#16844</a>) (Nicholas C. Zakas)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/71f6f0dcd574320ee71c3eb1f313841899bdf260"><code>71f6f0d</code></a> feat: report more cases with <code>??</code> in no-constant-binary-expression (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1556768758" data-permission-text="Title is private" data-url="eslint/eslint#16826" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16826/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16826">#16826</a>) (Daiki Nishikawa)</li> </ul> <h2>Bug Fixes</h2> <ul> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/9698bc5cdec1bbee567a6a489da82e87fe65d019"><code>9698bc5</code></a> fix: pin esquery v1.4.0 (fixes <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1586876278" data-permission-text="Title is private" data-url="eslint/eslint#16896" data-hovercard-type="issue" data-hovercard-url="/eslint/eslint/issues/16896/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/issues/16896">#16896</a>) (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1587012135" data-permission-text="Title is private" data-url="eslint/eslint#16897" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16897/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16897">#16897</a>) (唯然)</li> </ul> <h2>Documentation</h2> <ul> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/f9f195ef12deb114fb86763010a23ea0cb4c78d1"><code>f9f195e</code></a> docs: Plugin docs cleanup & expansion (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1571606528" data-permission-text="Title is private" data-url="eslint/eslint#16862" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16862/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16862">#16862</a>) (Ben Perlmutter)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/df809fdedc5fc92df4be8340e28baedbde605b4f"><code>df809fd</code></a> docs: Custom Formatters page cleanup/expansion (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1581406102" data-permission-text="Title is private" data-url="eslint/eslint#16886" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16886/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16886">#16886</a>) (Ben Perlmutter)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/0700d1b14659bf39b1a08f082c44c9084cf676a8"><code>0700d1b</code></a> docs: Add PostCSS/Autoprefixer/CSSNano (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1437256550" data-permission-text="Title is private" data-url="eslint/eslint#16502" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16502/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16502">#16502</a>) (Nick Schonning)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/7b9e9bf78bedb009fe2813308ede1f46502c3890"><code>7b9e9bf</code></a> docs: support unicode anchors (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1531820418" data-permission-text="Title is private" data-url="eslint/eslint#16782" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16782/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16782">#16782</a>) (Percy Ma)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/5fbc0bffdd9f84feb43296eb502d1e484fb323f2"><code>5fbc0bf</code></a> docs: Update README (GitHub Actions Bot)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/67865a064cc1a4e320030299edc1cfdd1f9ac3b8"><code>67865a0</code></a> docs: Remove mention of mailing list (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1574837966" data-permission-text="Title is private" data-url="eslint/eslint#16869" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16869/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16869">#16869</a>) (Amaresh S M)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/43af24a88b939a62880c37d1332b02f677d82f16"><code>43af24a</code></a> docs: Add explanation of when to use 'warn' severity (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1580359377" data-permission-text="Title is private" data-url="eslint/eslint#16882" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16882/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16882">#16882</a>) (Nicholas C. Zakas)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/ed2999b38b4d61f5c278301738e294012d5d3c9e"><code>ed2999b</code></a> docs: Shareable configs page edits and expansion (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1555969805" data-permission-text="Title is private" data-url="eslint/eslint#16824" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16824/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16824">#16824</a>) (Ben Perlmutter)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/27806358b5e1c4d37b63b1c61595e86ff03b5b42"><code>2780635</code></a> docs: fix typos (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1581300981" data-permission-text="Title is private" data-url="eslint/eslint#16884" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16884/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16884">#16884</a>) (Lioness100)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/5bdaae205c3a0089ea338b382df59e21d5b06436"><code>5bdaae2</code></a> docs: Ways to Extend ESLint page (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1571572879" data-permission-text="Title is private" data-url="eslint/eslint#16861" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16861/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16861">#16861</a>) (Ben Perlmutter)</li> </ul> <h2>Chores</h2> <ul> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/cdcbe127de20cbcc4e24131a808c13b1024e61a2"><code>cdcbe12</code></a> chore: upgrade @ eslint/js@8.35.0 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1599888767" data-permission-text="Title is private" data-url="eslint/eslint#16935" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16935/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16935">#16935</a>) (Brandon Mills)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/c954c349c0c2f88919614efc95e1368c245582fd"><code>c954c34</code></a> chore: package.json update for @ eslint/js release (ESLint Jenkins)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/5a517da8e55f6de28e9c028c5627fa7d82945969"><code>5a517da</code></a> chore: package.json update for @ eslint/js release (ESLint Jenkins)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/9f10926d76be7cf675721b29bd5030e85cb4ab30"><code>9f10926</code></a> chore: upgrade @ eslint/eslintrc@2.0.0 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1597681566" data-permission-text="Title is private" data-url="eslint/eslint#16928" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16928/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16928">#16928</a>) (Milos Djermanovic)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/da728fae6c4e5fdda74195e84d45d67ad5cafc45"><code>da728fa</code></a> ci: use LTS node version in workflows (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1590537848" data-permission-text="Title is private" data-url="eslint/eslint#16907" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16907/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16907">#16907</a>) (Nitin Kumar)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/c57b4f3dc6383e452120381204ee4a7c874225a0"><code>c57b4f3</code></a> perf: upgrade to esquery@1.4.2 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1588145417" data-permission-text="Title is private" data-url="eslint/eslint#16901" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16901/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16901">#16901</a>) (Milos Djermanovic)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/9122f0764031dc36970df715bc5e16973890e18d"><code>9122f07</code></a> chore: Update stale bot settings (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1575084478" data-permission-text="Title is private" data-url="eslint/eslint#16870" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16870/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16870">#16870</a>) (Nicholas C. Zakas)</li> </ul> </li> <li> <b>8.34.0</b> - <a href="https://snyk.io/redirect/github/eslint/eslint/releases/tag/v8.34.0">2023-02-10</a></br><h2>Features</h2> <ul> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/9b2fcf7e928fc92ac6d43617bdee1bda250b7491"><code>9b2fcf7</code></a> feat: <code>array-callback-return</code> supports <code>Array.prototype.toSorted</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1564927810" data-permission-text="Title is private" data-url="eslint/eslint#16845" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16845/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16845">#16845</a>) (SUZUKI Sosuke)</li> </ul> <h2>Bug Fixes</h2> <ul> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/923f61d8fc82d83b912c6ba95abb5a509c4d7b52"><code>923f61d</code></a> fix: false positive with assignment in <code>no-extra-parens</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1575174966" data-permission-text="Title is private" data-url="eslint/eslint#16872" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16872/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16872">#16872</a>) (Francesco Trotta)</li> </ul> <h2>Documentation</h2> <ul> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/f0a988384ea1a262150e70d83abd8a5e50c46fa7"><code>f0a9883</code></a> docs: split rules documentation (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1548482502" data-permission-text="Title is private" data-url="eslint/eslint#16797" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16797/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16797">#16797</a>) (Ben Perlmutter)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/67aa37b583f059226b9c959672400f04ed6a56b5"><code>67aa37b</code></a> docs: fix typo in command-line-interface.md (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1575115886" data-permission-text="Title is private" data-url="eslint/eslint#16871" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16871/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16871">#16871</a>) (Kevin Rouchut)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/337f7ed96131d873be7ae6b010739476d0ad15e9"><code>337f7ed</code></a> docs: fix width of language input (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1567615386" data-permission-text="Title is private" data-url="eslint/eslint#16849" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16849/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16849">#16849</a>) (Tanuj Kanti)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/71349a1f709baa361bd656a7ce4a7d35d857a9a8"><code>71349a1</code></a> docs: Configure a Parser page (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1551917864" data-permission-text="Title is private" data-url="eslint/eslint#16803" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16803/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16803">#16803</a>) (Ben Perlmutter)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/de7e925d03764f3681269b30bb60b92ee463c10f"><code>de7e925</code></a> docs: remove extra line numbers in example (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1566040112" data-permission-text="Title is private" data-url="eslint/eslint#16848" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16848/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16848">#16848</a>) (jonz94)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/ad38d77102d6fe30cfa92c831174f178bb35c88b"><code>ad38d77</code></a> docs: Update README (GitHub Actions Bot)</li> </ul> <h2>Chores</h2> <ul> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/9dbe06d0ad875e6d5964497e2975e8d789e763d0"><code>9dbe06d</code></a> chore: add <code>type</code> property to array-element-newline schema (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1576466826" data-permission-text="Title is private" data-url="eslint/eslint#16877" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16877/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16877">#16877</a>) (MHO)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/a061527a0332f0edf559acfc2902a327cae098d9"><code>a061527</code></a> chore: Remove unused functions (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1574809163" data-permission-text="Title is private" data-url="eslint/eslint#16868" data-hovercard-type="pull_request" data-hovercard-url="/eslint/eslint/pull/16868/hovercard" href="https://snyk.io/redirect/github/eslint/eslint/pull/16868">#16868</a>) (Nicholas C. Zakas)</li> </ul> </li> <li> <b>8.33.0</b> - <a href="https://snyk.io/redirect/github/eslint/eslint/releases/tag/v8.33.0">2023-01-28</a></br><a href="https://snyk.io/redirect/github/eslint/eslint/releases/tag/v8.33.0"> Read more </a> </li> <li> <b>8.32.0</b> - <a href="https://snyk.io/redirect/github/eslint/eslint/releases/tag/v8.32.0">2023-01-15</a></br><a href="https://snyk.io/redirect/github/eslint/eslint/releases/tag/v8.32.0"> Read more </a> </li> <li> <b>8.31.0</b> - <a href="https://snyk.io/redirect/github/eslint/eslint/releases/tag/v8.31.0">2022-12-31</a></br><a href="https://snyk.io/redirect/github/eslint/eslint/releases/tag/v8.31.0"> Read more </a> </li> <li> <b>8.30.0</b> - <a href="https://snyk.io/redirect/github/eslint/eslint/releases/tag/v8.30.0">2022-12-16</a></br><a href="https://snyk.io/redirect/github/eslint/eslint/releases/tag/v8.30.0"> Read more </a> </li> <li> <b>8.29.0</b> - <a href="https://snyk.io/redirect/github/eslint/eslint/releases/tag/v8.29.0">2022-12-02</a></br><a href="https://snyk.io/redirect/github/eslint/eslint/releases/tag/v8.29.0"> Read more </a> </li> </ul> from <a href="https://snyk.io/redirect/github/eslint/eslint/releases">eslint GitHub release notes</a> </details> </details> <details> <summary><b>Commit messages</b></summary> </br> <details> <summary>Package name: <b>eslint</b></summary> <ul> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/75df535681d15d7d685468d637945a200301f9ee">75df535</a> 8.36.0</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/a0c856a82266107c8c93a695700b1f69a238316e">a0c856a</a> Build: changelog update for 8.36.0</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/602b11121910a97ab2bc4a95a46dd0ccd0a89309">602b111</a> chore: upgrade @ eslint/js@8.36.0 (#16978)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/43c2345c27024aeab6127e6bbfd55c8b70bd317e">43c2345</a> chore: package.json update for @ eslint/js release</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/00afb84e5039874c8745a45c953fceaf0c71c454">00afb84</a> chore: upgrade @ eslint/eslintrc@2.0.1 (#16977)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/698c5aad50e628ff00281dbc786e42de79834035">698c5aa</a> chore: upgrade espree@9.5.0 (#16976)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/b98fdd413a3b07b262bfce6f704c1c1bb8582770">b98fdd4</a> docs: Update README</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/c89a485c49450532ee3db74f2638429f1f37d0dd">c89a485</a> feat: Add `checkJSDoc` option to multiline-comment-style (#16807)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/f5f5e11bd5fd3daab9ccae41e270739c836c305e">f5f5e11</a> feat: Serialize parsers/processors in flat config (#16944)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/caf08ce0cc74917f7c0eec92d25fd784dc33ac4d">caf08ce</a> docs: fix estree link in custom formatters docs (#16967)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/75acdd21c5ce7024252e9d41ed77d2f30587caac">75acdd2</a> chore: lint more js files in docs (#16964)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/3398431574b903757bc78b08c8ed36b7b9fce8eb">3398431</a> docs: Custom Parsers cleanup/expansion (#16887)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/19d3531d9b54e1004318d28f9a6e18305c5bcc18">19d3531</a> docs: Update README</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/4799297ea582c81fd1e5623d32a7ddf7a7f3a126">4799297</a> feat: use @ eslint-community dependencies (#16784)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/b09a512107249a4eb19ef5a37b0bd672266eafdb">b09a512</a> docs: detect and fix broken links (#16837)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/92c1943ba73ea01e87086236e8736539b0eed558">92c1943</a> fix: correctly iterate files matched by glob patterns (#16831)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/89d9844b3151f09b5b21b6eeeda671009ec301e9">89d9844</a> ci: bump actions/add-to-project from 0.4.0 to 0.4.1 (#16943)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/0e869b37ed7a4e62d1ee1e3878a344353a6d9b30">0e869b3</a> 8.35.0</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/2aa7b67560a8743711115d606528cf01d573c429">2aa7b67</a> Build: changelog update for 8.35.0</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/cdcbe127de20cbcc4e24131a808c13b1024e61a2">cdcbe12</a> chore: upgrade @ eslint/js@8.35.0 (#16935)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/c954c349c0c2f88919614efc95e1368c245582fd">c954c34</a> chore: package.json update for @ eslint/js release</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/5a517da8e55f6de28e9c028c5627fa7d82945969">5a517da</a> chore: package.json update for @ eslint/js release</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/9f10926d76be7cf675721b29bd5030e85cb4ab30">9f10926</a> chore: upgrade @ eslint/eslintrc@2.0.0 (#16928)</li> <li><a href="https://snyk.io/redirect/github/eslint/eslint/commit/8e34a04e3a4395bce59bc6acadf84281abc11d18">8e34a04</a> feat: add `afterHashbangComment` option to `lines-around-comment` rule (#16920)</li> </ul> <a href="https://snyk.io/redirect/github/eslint/eslint/compare/d3e4b59f63e53436080b8da827521d6b41a72cea...75df535681d15d7d685468d637945a200301f9ee">Compare</a> </details> </details> <hr/> **Note:** *You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.* For more information: <img src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJmMzBhZWQ1ZS1jYTAwLTQ2NDgtYWViYy1lOWZhZTFiODBlZjAiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImYzMGFlZDVlLWNhMDAtNDY0OC1hZWJjLWU5ZmFlMWI4MGVmMCJ9fQ==" width="0" height="0"/>🧐 [View latest project report](https://app.snyk.io/org/say383/project/606b3112-da74-4ab7-9340-b11e89448124?utm_source=github&utm_medium=referral&page=upgrade-pr)🛠 [Adjust upgrade PR settings](https://app.snyk.io/org/say383/project/606b3112-da74-4ab7-9340-b11e89448124/settings/integration?utm_source=github&utm_medium=referral&page=upgrade-pr)🔕 [Ignore this dependency or unsubscribe from future upgrade PRs](https://app.snyk.io/org/say383/project/606b3112-da74-4ab7-9340-b11e89448124/settings/integration?pkg=eslint&utm_source=github&utm_medium=referral&page=upgrade-pr#auto-dep-upgrades) <!--- (snyk:metadata:{"prId":"f30aed5e-ca00-4648-aebc-e9fae1b80ef0","prPublicId":"f30aed5e-ca00-4648-aebc-e9fae1b80ef0","dependencies":[{"name":"eslint","from":"8.29.0","to":"8.36.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/say383/project/606b3112-da74-4ab7-9340-b11e89448124?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"606b3112-da74-4ab7-9340-b11e89448124","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":7,"publishedDate":"2023-03-10T22:16:38.111Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]}) --->
Prerequisites checklist
What is the purpose of this pull request? (put an "X" next to an item)
[x] Documentation update
[ ] Bug fix (template)
[ ] New rule (template)
[ ] Changes an existing rule (template)
[ ] Add autofix to a rule
[ ] Add a CLI option
[ ] Add something to the core
[ ] Other, please explain:
What changes did you make? (Give an overview)
Custom Parsers page cleanup/expansion
Is there anything you'd like reviewers to focus on?
Resolves #16813