-
-
Notifications
You must be signed in to change notification settings - Fork 946
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
Fix no-irregular-whitespace
reported ranges
#8066
Fix no-irregular-whitespace
reported ranges
#8066
Conversation
🦋 Changeset detectedLatest commit: fcf29c0 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
/** | ||
* @param {string} str | ||
* @returns {string | null} | ||
* @returns {Array<{index: number, length: number}>} | ||
*/ | ||
const findIrregularWhitespace = (str) => { | ||
const result = IRREGULAR_WHITESPACES_PATTERN.exec(str); | ||
|
||
return (result && result[1]) || null; | ||
return Array.from(str.matchAll(IRREGULAR_WHITESPACES_PATTERN)).map((match) => { | ||
return { | ||
index: match.index, | ||
length: match[0].length, | ||
}; | ||
}); | ||
}; |
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.
The old implementation only reported a single irregular whitespace per AST field.
Instead of reporting each contiguous instance.
…-masked-palm-civet-aa54d96cf9' of https://github.com/stylelint/stylelint into fix-no-irregular-whitespace-reported-ranges--passionate-masked-palm-civet-aa54d96cf9
…-passionate-masked-palm-civet-aa54d96cf9
This reverts commit db4ce62.
…-passionate-masked-palm-civet-aa54d96cf9
…-passionate-masked-palm-civet-aa54d96cf9
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.
[suggestion] Can you extract a few pull requests from this one to make reviewing/reverting easier?
For example, one PR for the declaration utils is fine to me.
For the declaration utils, does it make sense to combine them to one function? I imagine the interface would be:
/**
* @param {import('postcss').Declaration} decl
* @param {'between' | 'value'} component
* @returns {number}
*/
export function declarationComponentIndex(decl, component) {
// ...
}
I'd like to reduce similar files/codes for maintainability even if they're internal.
@ybiquitous see #8097. |
…espace-reported-ranges--passionate-masked-palm-civet-aa54d96cf9
This should be ready for another look, thank you for the feedback |
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.
Iv left some additional comments; nothing important though.
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 your effort. The code is now much cleaner while fixing the bug! LGTM 😄 👍🏼
| datasource | package | from | to | | ---------- | --------- | ------- | ------- | | npm | stylelint | 16.10.0 | 16.11.0 | ## [v16.11.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16110) - Added: `--report-unscoped-disables` CLI flag and `reportUnscopedDisables` option to Node.js API and configuration object ([#8024](stylelint/stylelint#8024)) ([@Mouvedia](https://github.com/Mouvedia)). - Added: `ignoreFunctions: []` to `media-query-no-invalid` ([#8060](stylelint/stylelint#8060)) ([@ryo-manba](https://github.com/ryo-manba)). - Added: `name` configuration property under `overrides` ([#8095](stylelint/stylelint#8095)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `benchmark-rule` script to resolve `TypeError` ([#8090](stylelint/stylelint#8090)) ([@ybiquitous](https://github.com/ybiquitous)). - Fixed: `github` formatter deprecation warning link to `https://stylelint.io/awesome-stylelint#formatters` ([#8115](stylelint/stylelint#8115)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `function-calc-no-unspaced-operator` false negatives for `calc-size` ([#8026](stylelint/stylelint#8026)) ([@azat-io](https://github.com/azat-io)). - Fixed: `max-nesting-depth` false positives when the `&` selector is being ignored ([#8048](stylelint/stylelint#8048)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `media-feature-name-value-no-unknown` false positives for `display-mode: picture-in-picture` ([#8136](stylelint/stylelint#8136)) ([@Mouvedia](https://github.com/Mouvedia)). - Fixed: `no-irregular-whitespace` reported ranges ([#8066](stylelint/stylelint#8066)) ([@romainmenke](https://github.com/romainmenke)). - Fixed: `selector-attribute-name-disallowed-list` reported ranges ([#8037](stylelint/stylelint#8037)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-attribute-operator-allowed-list` reported ranges ([#8038](stylelint/stylelint#8038)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-attribute-operator-disallowed-list` reported ranges ([#8039](stylelint/stylelint#8039)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-class-pattern` reported ranges ([#8042](stylelint/stylelint#8042)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-combinator-allowed-list` reported ranges ([#8046](stylelint/stylelint#8046)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-combinator-disallowed-list` reported ranges ([#8047](stylelint/stylelint#8047)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-disallowed-list` reported ranges ([#8067](stylelint/stylelint#8067)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-id-pattern` reported ranges ([#8045](stylelint/stylelint#8045)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-attribute` reported ranges ([#8052](stylelint/stylelint#8052)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-class` reported ranges ([#8053](stylelint/stylelint#8053)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-combinators` reported-ranges ([#8055](stylelint/stylelint#8055)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-compound-selectors` reported ranges ([#8056](stylelint/stylelint#8056)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-id` reported ranges ([#8054](stylelint/stylelint#8054)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-pseudo-class` reported ranges ([#8057](stylelint/stylelint#8057)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-specificity` reported ranges ([#8058](stylelint/stylelint#8058)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-universal` reported ranges ([#8059](stylelint/stylelint#8059)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-nested-pattern` reported ranges ([#8072](stylelint/stylelint#8072)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-no-vendor-prefix` reported ranges ([#8073](stylelint/stylelint#8073)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-not-notation` reported ranges ([#8074](stylelint/stylelint#8074)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-pseudo-class-allowed-list` reported ranges ([#8061](stylelint/stylelint#8061)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-pseudo-class-disallowed-list` reported ranges ([#8062](stylelint/stylelint#8062)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-pseudo-class-no-unknown` reported ranges ([#8063](stylelint/stylelint#8063)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-pseudo-element-allowed-list` reported ranges ([#8068](stylelint/stylelint#8068)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-pseudo-element-colon-notation` reported ranges ([#8069](stylelint/stylelint#8069)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-pseudo-element-disallowed-list` reported ranges ([#8070](stylelint/stylelint#8070)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-pseudo-element-no-unknown` false positives for `::scroll-marker` and `::scroll-marker-group` ([#8110](stylelint/stylelint#8110)) ([@Mouvedia](https://github.com/Mouvedia)). - Fixed: `selector-pseudo-element-no-unknown` reported ranges ([#8071](stylelint/stylelint#8071)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-type-no-unknown` reported ranges ([#8076](stylelint/stylelint#8076)) ([@ryo-manba](https://github.com/ryo-manba)).
| datasource | package | from | to | | ---------- | --------- | ------- | ------- | | npm | stylelint | 16.10.0 | 16.11.0 | ## [v16.11.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16110) - Added: `--report-unscoped-disables` CLI flag and `reportUnscopedDisables` option to Node.js API and configuration object ([#8024](stylelint/stylelint#8024)) ([@Mouvedia](https://github.com/Mouvedia)). - Added: `ignoreFunctions: []` to `media-query-no-invalid` ([#8060](stylelint/stylelint#8060)) ([@ryo-manba](https://github.com/ryo-manba)). - Added: `name` configuration property under `overrides` ([#8095](stylelint/stylelint#8095)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `benchmark-rule` script to resolve `TypeError` ([#8090](stylelint/stylelint#8090)) ([@ybiquitous](https://github.com/ybiquitous)). - Fixed: `github` formatter deprecation warning link to `https://stylelint.io/awesome-stylelint#formatters` ([#8115](stylelint/stylelint#8115)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `function-calc-no-unspaced-operator` false negatives for `calc-size` ([#8026](stylelint/stylelint#8026)) ([@azat-io](https://github.com/azat-io)). - Fixed: `max-nesting-depth` false positives when the `&` selector is being ignored ([#8048](stylelint/stylelint#8048)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `media-feature-name-value-no-unknown` false positives for `display-mode: picture-in-picture` ([#8136](stylelint/stylelint#8136)) ([@Mouvedia](https://github.com/Mouvedia)). - Fixed: `no-irregular-whitespace` reported ranges ([#8066](stylelint/stylelint#8066)) ([@romainmenke](https://github.com/romainmenke)). - Fixed: `selector-attribute-name-disallowed-list` reported ranges ([#8037](stylelint/stylelint#8037)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-attribute-operator-allowed-list` reported ranges ([#8038](stylelint/stylelint#8038)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-attribute-operator-disallowed-list` reported ranges ([#8039](stylelint/stylelint#8039)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-class-pattern` reported ranges ([#8042](stylelint/stylelint#8042)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-combinator-allowed-list` reported ranges ([#8046](stylelint/stylelint#8046)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-combinator-disallowed-list` reported ranges ([#8047](stylelint/stylelint#8047)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-disallowed-list` reported ranges ([#8067](stylelint/stylelint#8067)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-id-pattern` reported ranges ([#8045](stylelint/stylelint#8045)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-attribute` reported ranges ([#8052](stylelint/stylelint#8052)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-class` reported ranges ([#8053](stylelint/stylelint#8053)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-combinators` reported-ranges ([#8055](stylelint/stylelint#8055)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-compound-selectors` reported ranges ([#8056](stylelint/stylelint#8056)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-id` reported ranges ([#8054](stylelint/stylelint#8054)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-pseudo-class` reported ranges ([#8057](stylelint/stylelint#8057)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-specificity` reported ranges ([#8058](stylelint/stylelint#8058)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-max-universal` reported ranges ([#8059](stylelint/stylelint#8059)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-nested-pattern` reported ranges ([#8072](stylelint/stylelint#8072)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-no-vendor-prefix` reported ranges ([#8073](stylelint/stylelint#8073)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-not-notation` reported ranges ([#8074](stylelint/stylelint#8074)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-pseudo-class-allowed-list` reported ranges ([#8061](stylelint/stylelint#8061)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-pseudo-class-disallowed-list` reported ranges ([#8062](stylelint/stylelint#8062)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-pseudo-class-no-unknown` reported ranges ([#8063](stylelint/stylelint#8063)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-pseudo-element-allowed-list` reported ranges ([#8068](stylelint/stylelint#8068)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-pseudo-element-colon-notation` reported ranges ([#8069](stylelint/stylelint#8069)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-pseudo-element-disallowed-list` reported ranges ([#8070](stylelint/stylelint#8070)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-pseudo-element-no-unknown` false positives for `::scroll-marker` and `::scroll-marker-group` ([#8110](stylelint/stylelint#8110)) ([@Mouvedia](https://github.com/Mouvedia)). - Fixed: `selector-pseudo-element-no-unknown` reported ranges ([#8071](stylelint/stylelint#8071)) ([@ryo-manba](https://github.com/ryo-manba)). - Fixed: `selector-type-no-unknown` reported ranges ([#8076](stylelint/stylelint#8076)) ([@ryo-manba](https://github.com/ryo-manba)).
See #7904
No