@@ -14,21 +14,30 @@ CSSLint.addRule({
14
14
init : function ( parser , reporter ) {
15
15
var rule = this ;
16
16
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 ,
19
19
selectors = event . selectors ;
20
20
21
21
for ( i = 0 , len = selectors . length ; i < len ; i ++ ) {
22
22
selector = selectors [ i ] ;
23
23
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
+ }
28
34
}
29
- previousLine = currentLine ;
30
35
}
36
+
31
37
}
32
- } ) ;
38
+ }
39
+
40
+ parser . addListener ( "startrule" , startRule ) ;
41
+
33
42
}
34
43
} ) ;
0 commit comments