@@ -10,31 +10,65 @@ module.exports = {
10
10
'detect' : function ( ast , parser ) {
11
11
var result = [ ] ;
12
12
13
- ast . traverseByTypes ( [ 'important' , 'default' ] , function ( block , i , parent ) {
13
+ ast . traverseByTypes ( [ 'important' , 'default' , 'value' ] , function ( block , i , parent ) {
14
14
var previous = parent . content [ i - 1 ] ;
15
-
16
- if ( ! previous . is ( 'space' ) ) {
17
- if ( parser . options . include ) {
18
- result = helpers . addUnique ( result , {
19
- 'ruleId' : parser . rule . name ,
20
- 'line' : block . start . line ,
21
- 'column' : block . start . column ,
22
- 'message' : 'Whitespace required before !important' ,
23
- 'severity' : parser . severity
24
- } ) ;
15
+ if ( block . is ( 'value' ) && block . contains ( 'important' ) ) {
16
+ if ( block . content . length === 1 && block . first ( 'important' ) ) {
17
+ if ( previous ) {
18
+ if ( ! previous . is ( 'space' ) ) {
19
+ if ( parser . options . include ) {
20
+ result = helpers . addUnique ( result , {
21
+ 'ruleId' : parser . rule . name ,
22
+ 'line' : block . first ( 'important' ) . start . line ,
23
+ 'column' : block . first ( 'important' ) . start . column ,
24
+ 'message' : 'Whitespace required before !important' ,
25
+ 'severity' : parser . severity
26
+ } ) ;
27
+ }
28
+ }
29
+ else {
30
+ if ( ! parser . options . include ) {
31
+ result = helpers . addUnique ( result , {
32
+ 'ruleId' : parser . rule . name ,
33
+ 'line' : block . first ( 'important' ) . start . line ,
34
+ 'column' : block . first ( 'important' ) . start . column ,
35
+ 'message' : 'Whitespace not allowed before !important' ,
36
+ 'severity' : parser . severity
37
+ } ) ;
38
+ }
39
+ }
40
+ }
25
41
}
26
42
}
27
- else {
28
- if ( ! parser . options . include ) {
29
- result = helpers . addUnique ( result , {
30
- 'ruleId' : parser . rule . name ,
31
- 'line' : previous . start . line ,
32
- 'column' : previous . start . column ,
33
- 'message' : 'Whitespace not allowed before !important' ,
34
- 'severity' : parser . severity
35
- } ) ;
43
+ else
44
+ if ( block . is ( 'important' ) || block . is ( 'default' ) ) {
45
+ var blockString = block . is ( 'important' ) ? '!important' : '!default' ;
46
+ if ( previous ) {
47
+ if ( ! previous . is ( 'space' ) ) {
48
+ if ( parser . options . include ) {
49
+ result = helpers . addUnique ( result , {
50
+ 'ruleId' : parser . rule . name ,
51
+ 'line' : block . start . line ,
52
+ 'column' : block . start . column ,
53
+ 'message' : 'Whitespace required before ' + blockString ,
54
+ 'severity' : parser . severity
55
+ } ) ;
56
+ }
57
+ }
58
+ else {
59
+ if ( ! parser . options . include ) {
60
+ result = helpers . addUnique ( result , {
61
+ 'ruleId' : parser . rule . name ,
62
+ 'line' : previous . start . line ,
63
+ 'column' : previous . start . column ,
64
+ 'message' : 'Whitespace not allowed before ' + blockString ,
65
+ 'severity' : parser . severity
66
+ } ) ;
67
+ }
68
+ }
36
69
}
37
70
}
71
+ return false ;
38
72
} ) ;
39
73
40
74
return result ;
0 commit comments