3
3
var trim = require ( 'trim' ) ;
4
4
var location = require ( 'vfile-location' ) ;
5
5
var visit = require ( 'unist-util-visit' ) ;
6
- var marker = require ( 'mdast-comment-marker' ) ;
7
6
8
7
/* Map of allowed verbs. */
9
8
var ALLOWED_VERBS = {
@@ -16,6 +15,8 @@ module.exports = messageControl;
16
15
17
16
function messageControl ( options ) {
18
17
var name = options && options . name ;
18
+ var marker = options && options . marker ;
19
+ var test = options && options . test ;
19
20
var sources ;
20
21
var known ;
21
22
var reset ;
@@ -26,6 +27,14 @@ function messageControl(options) {
26
27
throw new Error ( 'Expected `name` in `options`, got `' + name + '`' ) ;
27
28
}
28
29
30
+ if ( ! marker ) {
31
+ throw new Error ( 'Expected `name` in `options`, got `' + name + '`' ) ;
32
+ }
33
+
34
+ if ( ! test ) {
35
+ throw new Error ( 'Expected `test` in `options`, got `' + test + '`' ) ;
36
+ }
37
+
29
38
known = options . known ;
30
39
reset = options . reset ;
31
40
enable = options . enable || [ ] ;
@@ -47,7 +56,7 @@ function messageControl(options) {
47
56
var scope = { } ;
48
57
var globals = [ ] ;
49
58
50
- visit ( tree , 'html' , visitor ) ;
59
+ visit ( tree , test , visitor ) ;
51
60
52
61
file . messages = file . messages . filter ( filter ) ;
53
62
@@ -74,8 +83,10 @@ function messageControl(options) {
74
83
75
84
if ( ! verb || ! ALLOWED_VERBS [ verb ] === true ) {
76
85
file . fail (
77
- 'Unknown keyword `' + verb + '`: expected ' +
78
- '`\'enable\'`, `\'disable\'`, or `\'ignore\'`' ,
86
+ 'Unknown keyword `' +
87
+ verb +
88
+ '`: expected ' +
89
+ '`\'enable\'`, `\'disable\'`, or `\'ignore\'`' ,
79
90
mark . node
80
91
) ;
81
92
}
@@ -132,10 +143,7 @@ function messageControl(options) {
132
143
pos = toOffset ( message ) ;
133
144
134
145
while ( gapIndex -- ) {
135
- if (
136
- gaps [ gapIndex ] . start <= pos &&
137
- gaps [ gapIndex ] . end > pos
138
- ) {
146
+ if ( gaps [ gapIndex ] . start <= pos && gaps [ gapIndex ] . end > pos ) {
139
147
return false ;
140
148
}
141
149
}
@@ -217,7 +225,8 @@ function messageControl(options) {
217
225
218
226
if (
219
227
range . position . line < message . line ||
220
- ( range . position . line === message . line && range . position . column < message . column )
228
+ ( range . position . line === message . line &&
229
+ range . position . column < message . column )
221
230
) {
222
231
return range . state === true ;
223
232
}
@@ -258,10 +267,7 @@ function detectGaps(tree, file) {
258
267
update ( ) ;
259
268
260
269
update (
261
- tree &&
262
- tree . position &&
263
- tree . position . end &&
264
- tree . position . end . offset - 1
270
+ tree && tree . position && tree . position . end && tree . position . end . offset - 1
265
271
) ;
266
272
}
267
273
0 commit comments