Skip to content

Commit

Permalink
Fix false positives for flush comments containing a comma in selector…
Browse files Browse the repository at this point in the history
…-max-universal (#3817)
  • Loading branch information
sswebcoder authored and hudochenkov committed Jan 10, 2019
1 parent 754bf92 commit 584876d
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
3 changes: 3 additions & 0 deletions lib/rules/selector-max-universal/__tests__/index.js
Expand Up @@ -18,6 +18,9 @@ testRule(rule, {
{
code: "foo .bar {}"
},
{
code: ".foo,/* .class, */.bar {}"
},
{
code: "#foo {}"
},
Expand Down
17 changes: 16 additions & 1 deletion lib/rules/selector-max-universal/index.js
Expand Up @@ -6,6 +6,7 @@ const parseSelector = require("../../utils/parseSelector");
const report = require("../../utils/report");
const resolvedNestedSelector = require("postcss-resolve-nested-selector");
const ruleMessages = require("../../utils/ruleMessages");
const selectorParser = require("postcss-selector-parser");
const validateOptions = require("../../utils/validateOptions");

const ruleName = "selector-max-universal";
Expand Down Expand Up @@ -75,7 +76,21 @@ function rule(max) {
return;
}

ruleNode.selectors.forEach(selector => {
const selectors = [];

selectorParser()
.astSync(ruleNode.selector)
.walk(node => {
if (node.type === "selector") {
selectors.push(
String(node)
.replace(/^(\s*)/m, "")
.replace(/(\s*)$/m, "")
);
}
});

selectors.forEach(selector => {
resolvedNestedSelector(selector, ruleNode).forEach(resolvedSelector => {
parseSelector(resolvedSelector, result, ruleNode, container =>
checkSelector(container, ruleNode)
Expand Down

0 comments on commit 584876d

Please sign in to comment.