Skip to content

Commit a422b00

Browse files
committed
Merge pull request #495 from XhmikosR/selector-newline
Try to fix selector-newline rule.
2 parents 635c915 + 6a6b4cb commit a422b00

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

src/rules/selector-newline.js

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,30 @@ CSSLint.addRule({
1414
init: function(parser, reporter) {
1515
var rule = this;
1616

17-
parser.addListener("startrule", function(event) {
18-
var i, len, selector, p, pLen, part, previousLine, currentLine,
17+
function startRule(event) {
18+
var i, len, selector, p, n, pLen, part, part2, type, currentLine, nextLine,
1919
selectors = event.selectors;
2020

2121
for (i = 0, len = selectors.length; i < len; i++) {
2222
selector = selectors[i];
2323
for (p = 0, pLen = selector.parts.length; p < pLen; p++) {
24-
part = selector.parts[p];
25-
currentLine = part.line;
26-
if (currentLine === previousLine) {
27-
reporter.report("newline character found in selector (forgot a comma?)", currentLine, selectors[i].parts[0].col, rule);
24+
for (n = p + 1; n < pLen; n++) {
25+
part = selector.parts[p];
26+
part2 = selector.parts[n];
27+
type = part.type;
28+
currentLine = part.line;
29+
nextLine = part2.line;
30+
31+
if (type === "descendant" && nextLine > currentLine) {
32+
reporter.report("newline character found in selector (forgot a comma?)", currentLine, selectors[i].parts[0].col, rule);
33+
}
2834
}
29-
previousLine = currentLine;
3035
}
36+
3137
}
32-
});
38+
}
39+
40+
parser.addListener("startrule", startRule);
41+
3342
}
3443
});

tests/rules/selector-newline.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
},
2828
"a newline between selectors should not result in a warning": function () {
2929
expectPass(".foo,\n.bar{}");
30+
},
31+
"'+' or '>' should not result in a warning": function () {
32+
expectPass(".foo > .bar,\n.foo + .bar,\n.foo >\n.bar{}");
3033
}
3134
}));
3235

0 commit comments

Comments
 (0)