Skip to content

Commit ed10fb2

Browse files
committedApr 9, 2018
Update snapdragon to 0.11
1 parent b00d865 commit ed10fb2

File tree

4 files changed

+18
-23
lines changed

4 files changed

+18
-23
lines changed
 

‎lib/compilers.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ module.exports = function(extglob) {
4646

4747
.set('qmark', function(node) {
4848
var val = '[^\\\\/.]';
49-
var prev = this.prev();
49+
var prev = node.prev;
5050

5151
if (node.parsed.slice(-1) === '(') {
5252
var ch = node.rest.charAt(0);
@@ -90,7 +90,7 @@ module.exports = function(extglob) {
9090
*/
9191

9292
.set('star', function(node) {
93-
var prev = this.prev();
93+
var prev = node.prev;
9494
var prefix = prev.type !== 'text' && prev.type !== 'escape'
9595
? '(?!\\.)'
9696
: '';
@@ -103,7 +103,7 @@ module.exports = function(extglob) {
103103
*/
104104

105105
.set('paren', function(node) {
106-
return this.mapVisit(node.nodes);
106+
this.mapVisit(node);
107107
})
108108
.set('paren.open', function(node) {
109109
var capture = this.options.capture ? '(' : '';

‎lib/extglob.js

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
var Snapdragon = require('snapdragon');
8+
var capture = require('snapdragon-capture');
89
var define = require('define-property');
910
var extend = require('extend-shallow');
1011

@@ -22,6 +23,7 @@ var parsers = require('./parsers');
2223
function Extglob(options) {
2324
this.options = extend({source: 'extglob'}, options);
2425
this.snapdragon = this.options.snapdragon || new Snapdragon(this.options);
26+
this.snapdragon.use(capture());
2527
this.snapdragon.patterns = this.snapdragon.patterns || {};
2628
this.compiler = this.snapdragon.compiler;
2729
this.parser = this.snapdragon.parser;

‎lib/parsers.js

+8-16
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict';
22

33
var brackets = require('expand-brackets');
4-
var define = require('define-property');
54
var utils = require('./utils');
65

76
/**
@@ -31,8 +30,7 @@ function parsers(extglob) {
3130
* Extglob open: "*("
3231
*/
3332

34-
.capture('paren.open', function() {
35-
var parsed = this.parsed;
33+
.set('paren.open', function() {
3634
var pos = this.position();
3735
var m = this.match(/^([!@*?+])?\(/);
3836
if (!m) return;
@@ -43,14 +41,13 @@ function parsers(extglob) {
4341

4442
var open = pos({
4543
type: 'paren.open',
46-
parsed: parsed,
4744
val: val
4845
});
4946

5047
var node = pos({
5148
type: 'paren',
5249
prefix: prefix,
53-
nodes: [open]
50+
nodes: []
5451
});
5552

5653
// if nested negation extglobs, just cancel them out to simplify
@@ -59,20 +56,16 @@ function parsers(extglob) {
5956
node.prefix = '@';
6057
}
6158

62-
define(node, 'rest', this.input);
63-
define(node, 'parsed', parsed);
64-
define(node, 'parent', prev);
65-
define(open, 'parent', node);
66-
59+
this.pushNode(node, prev);
60+
this.pushNode(open, node);
6761
this.push('paren', node);
68-
prev.nodes.push(node);
6962
})
7063

7164
/**
7265
* Extglob close: ")"
7366
*/
7467

75-
.capture('paren.close', function() {
68+
.set('paren.close', function() {
7669
var parsed = this.parsed;
7770
var pos = this.position();
7871
var m = this.match(/^\)/);
@@ -95,15 +88,14 @@ function parsers(extglob) {
9588
}
9689

9790
node.prefix = parent.prefix;
98-
parent.nodes.push(node);
99-
define(node, 'parent', parent);
91+
this.pushNode(node, parent);
10092
})
10193

10294
/**
10395
* Escape: "\\."
10496
*/
10597

106-
.capture('escape', function() {
98+
.set('escape', function() {
10799
var pos = this.position();
108100
var m = this.match(/^\\(.)/);
109101
if (!m) return;
@@ -119,7 +111,7 @@ function parsers(extglob) {
119111
* Question marks: "?"
120112
*/
121113

122-
.capture('qmark', function() {
114+
.set('qmark', function() {
123115
var parsed = this.parsed;
124116
var pos = this.position();
125117
var m = this.match(/^\?+(?!\()/);

‎package.json

+5-4
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@
3030
},
3131
"dependencies": {
3232
"array-unique": "^0.3.2",
33-
"define-property": "^1.0.0",
34-
"expand-brackets": "^2.1.4",
35-
"extend-shallow": "^2.0.1",
33+
"define-property": "^2.0.2",
34+
"expand-brackets": "^3.0.0",
35+
"extend-shallow": "^3.0.2",
3636
"fragment-cache": "^0.2.1",
3737
"regex-not": "^1.0.0",
38-
"snapdragon": "^0.8.1",
38+
"snapdragon": "^0.11.4",
39+
"snapdragon-capture": "^0.2.0",
3940
"to-regex": "^3.0.1"
4041
},
4142
"devDependencies": {

0 commit comments

Comments
 (0)
Please sign in to comment.