| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | 
							- 'use strict';
 
- var nanomatch = require('nanomatch');
 
- var extglob = require('extglob');
 
- module.exports = function(snapdragon) {
 
-   var compilers = snapdragon.compiler.compilers;
 
-   var opts = snapdragon.options;
 
-   // register nanomatch compilers
 
-   snapdragon.use(nanomatch.compilers);
 
-   // get references to some specific nanomatch compilers before they
 
-   // are overridden by the extglob and/or custom compilers
 
-   var escape = compilers.escape;
 
-   var qmark = compilers.qmark;
 
-   var slash = compilers.slash;
 
-   var star = compilers.star;
 
-   var text = compilers.text;
 
-   var plus = compilers.plus;
 
-   var dot = compilers.dot;
 
-   // register extglob compilers or escape exglobs if disabled
 
-   if (opts.extglob === false || opts.noext === true) {
 
-     snapdragon.compiler.use(escapeExtglobs);
 
-   } else {
 
-     snapdragon.use(extglob.compilers);
 
-   }
 
-   snapdragon.use(function() {
 
-     this.options.star = this.options.star || function(/*node*/) {
 
-       return '[^\\\\/]*?';
 
-     };
 
-   });
 
-   // custom micromatch compilers
 
-   snapdragon.compiler
 
-     // reset referenced compiler
 
-     .set('dot', dot)
 
-     .set('escape', escape)
 
-     .set('plus', plus)
 
-     .set('slash', slash)
 
-     .set('qmark', qmark)
 
-     .set('star', star)
 
-     .set('text', text);
 
- };
 
- function escapeExtglobs(compiler) {
 
-   compiler.set('paren', function(node) {
 
-     var val = '';
 
-     visit(node, function(tok) {
 
-       if (tok.val) val += (/^\W/.test(tok.val) ? '\\' : '') + tok.val;
 
-     });
 
-     return this.emit(val, node);
 
-   });
 
-   /**
 
-    * Visit `node` with the given `fn`
 
-    */
 
-   function visit(node, fn) {
 
-     return node.nodes ? mapVisit(node.nodes, fn) : fn(node);
 
-   }
 
-   /**
 
-    * Map visit over array of `nodes`.
 
-    */
 
-   function mapVisit(nodes, fn) {
 
-     var len = nodes.length;
 
-     var idx = -1;
 
-     while (++idx < len) {
 
-       visit(nodes[idx], fn);
 
-     }
 
-   }
 
- }
 
 
  |