@@ -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} ) ;
0 commit comments