@@ -15,11 +15,19 @@ const utils = require('../utils')
15
15
// ------------------------------------------------------------------------------
16
16
17
17
function isOpenBrace ( token ) {
18
- return token . type === 'Punctuator' && token . value === '{'
18
+ return token . type === 'Punctuator' && ( token . value === '{' || token . value === '[' )
19
19
}
20
20
21
- function isCloseBrace ( token ) {
22
- return token . type === 'Punctuator' && token . value === '}'
21
+ function isCloseBrace ( token , openBrace ) {
22
+ if ( token . type !== 'Punctuator' ) {
23
+ return false
24
+ }
25
+
26
+ if ( openBrace ) {
27
+ return { '[' : ']' , '{' : '}' } [ openBrace . value ] === token . value
28
+ }
29
+
30
+ return ( token . value === '}' || token . value === ']' )
23
31
}
24
32
25
33
function isEndOf ( punctuator , token ) {
@@ -37,9 +45,9 @@ function getOpenAndCloseBraces (node, tokens) {
37
45
return
38
46
}
39
47
40
- if ( isOpenBrace ( root ) ) {
48
+ if ( ! openBrace && isOpenBrace ( root ) ) {
41
49
openBrace = root
42
- } else if ( isCloseBrace ( root ) ) {
50
+ } else if ( isCloseBrace ( root , openBrace ) ) {
43
51
closeBrace = root
44
52
}
45
53
@@ -98,14 +106,20 @@ module.exports = {
98
106
if ( openBrace . range [ 0 ] === nextToken . range [ 0 ] - 1 ) {
99
107
context . report ( {
100
108
node : nextToken ,
101
- message : `Expected 1 space after '{', but not found.` ,
109
+ message : `Expected 1 space after '{{ displayValue }}', but not found.` ,
110
+ data : {
111
+ displayValue : openBrace . value
112
+ } ,
102
113
fix : fixer => fixer . insertTextAfter ( openBrace , ' ' )
103
114
} )
104
115
}
105
116
if ( closeBrace . range [ 0 ] === previousToken . range [ 1 ] ) {
106
117
context . report ( {
107
118
node : closeBrace ,
108
- message : `Expected 1 space before '}', but not found.` ,
119
+ message : `Expected 1 space before '{{ displayValue }}', but not found.` ,
120
+ data : {
121
+ displayValue : closeBrace . value
122
+ } ,
109
123
fix : fixer => fixer . insertTextBefore ( closeBrace , ' ' )
110
124
} )
111
125
}
@@ -117,15 +131,21 @@ module.exports = {
117
131
start : openBrace . loc . end ,
118
132
end : openBrace . loc . start
119
133
} ,
120
- message : `Expected no space after '{', but found.` ,
134
+ message : `Expected no space after '{{ displayValue }}', but found.` ,
135
+ data : {
136
+ displayValue : openBrace . value
137
+ } ,
121
138
fix : fixer => fixer . removeRange ( [ openBrace . range [ 1 ] , nextToken . range [ 0 ] ] )
122
139
} )
123
140
}
124
141
125
142
if ( closeBrace . range [ 0 ] !== previousToken . range [ 1 ] ) {
126
143
context . report ( {
127
144
node : closeBrace ,
128
- message : `Expected no space before '}', but found.` ,
145
+ message : `Expected no space before '{{ displayValue }}', but found.` ,
146
+ data : {
147
+ displayValue : closeBrace . value
148
+ } ,
129
149
fix : fixer => fixer . removeRange ( [ previousToken . range [ 1 ] , closeBrace . range [ 0 ] ] )
130
150
} )
131
151
}
@@ -141,27 +161,39 @@ module.exports = {
141
161
start : firstToken . loc . end ,
142
162
end : firstToken . loc . start
143
163
} ,
144
- message : `Expected no space before '{', but found.` ,
164
+ message : `Expected no space before '{{ displayValue }}', but found.` ,
165
+ data : {
166
+ displayValue : openBrace . value
167
+ } ,
145
168
fix : fixer => fixer . removeRange ( [ firstToken . range [ 1 ] , openBrace . range [ 0 ] ] )
146
169
} )
147
170
} else if ( firstToken . range [ 1 ] === openBrace . range [ 0 ] && firstToken . value !== '"' ) {
148
171
context . report ( {
149
172
node : openBrace ,
150
- message : `Expected 1 space before '{', but not found.` ,
173
+ message : `Expected 1 space before '{{ displayValue }}', but not found.` ,
174
+ data : {
175
+ displayValue : openBrace . value
176
+ } ,
151
177
fix : fixer => fixer . insertTextAfter ( firstToken , ' ' )
152
178
} )
153
179
}
154
180
155
181
if ( lastToken . range [ 0 ] !== closeBrace . range [ 1 ] && lastToken . value === '"' ) {
156
182
context . report ( {
157
183
node : lastToken ,
158
- message : `Expected no space after '}', but found.` ,
184
+ message : `Expected no space after '{{ displayValue }}', but found.` ,
185
+ data : {
186
+ displayValue : closeBrace . value
187
+ } ,
159
188
fix : fixer => fixer . removeRange ( [ closeBrace . range [ 1 ] , lastToken . range [ 0 ] ] )
160
189
} )
161
190
} else if ( lastToken . range [ 0 ] === closeBrace . range [ 1 ] && lastToken . value !== '"' ) {
162
191
context . report ( {
163
192
node : lastToken ,
164
- message : `Expected 1 space after '}', but not found.` ,
193
+ message : `Expected 1 space after '{{ displayValue }}', but not found.` ,
194
+ data : {
195
+ displayValue : closeBrace . value
196
+ } ,
165
197
fix : fixer => fixer . insertTextBefore ( lastToken , ' ' )
166
198
} )
167
199
}
0 commit comments