Skip to content

Commit 67f0021

Browse files
author
Nikita Mostovoy
committed
add postCSS@5.2 support
1 parent dfa6017 commit 67f0021

File tree

3 files changed

+21
-15
lines changed

3 files changed

+21
-15
lines changed

lib/less-parser.js

+17-11
Original file line numberDiff line numberDiff line change
@@ -137,29 +137,35 @@ export default class LessParser extends Parser {
137137
}
138138

139139
/* eslint-disable max-statements, complexity */
140-
word () {
140+
other () {
141141
let end = false;
142142
let colon = false;
143143
let bracket = null;
144-
let brackets = 0;
144+
const brackets = [];
145145
const start = this.pos;
146+
147+
// we need pass "()" as spaces
148+
// However we can override method Parser.loop, but it seems less maintainable
149+
if (this.tokens[start][0] === 'brackets') {
150+
this.spaces += this.tokens[start][1];
151+
return;
152+
}
146153
const isMixin = isMixinToken(this.tokens[start]);
147154
const isExtendRule = Boolean(findExtendRule(this.tokens, start));
148155
const params = [];
149156

150157
this.pos += 1;
151-
152158
while (this.pos < this.tokens.length) {
153159
const token = this.tokens[this.pos];
154160
const type = token[0];
155161

156-
if (type === '(') {
162+
if (type === '(' || type === '[') {
157163
if (!bracket) {
158164
bracket = token;
159165
}
160166

161-
brackets += 1;
162-
} else if (brackets === 0) {
167+
brackets.push(type === '(' ? ')' : ']');
168+
} else if (brackets.length === 0) {
163169
if (type === ';') {
164170
const foundEndOfRule = this.processEndOfRule({
165171
start,
@@ -184,14 +190,14 @@ export default class LessParser extends Parser {
184190
} else if (type === ':') {
185191
colon = true;
186192
}
187-
} else if (type === ')') {
188-
brackets -= 1;
189-
if (brackets === 0) {
193+
} else if (type === brackets[brackets.length - 1]) {
194+
brackets.pop();
195+
if (brackets.length === 0) {
190196
bracket = null;
191197
}
192198
}
193199

194-
if (brackets || type === 'brackets' || params[0]) {
200+
if (brackets.length > 0 || type === 'brackets' || params[0]) {
195201
params.push(token);
196202
}
197203

@@ -203,7 +209,7 @@ export default class LessParser extends Parser {
203209
end = true;
204210
}
205211

206-
if (brackets > 0) {
212+
if (brackets.length > 0) {
207213
this.unclosedBracket(bracket);
208214
}
209215

npm-shrinkwrap.json

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
"prepublish": "./node_modules/.bin/gulp dist"
3636
},
3737
"dependencies": {
38-
"postcss": "^5.0.21"
38+
"postcss": "^5.2.16"
3939
},
4040
"devDependencies": {
4141
"babel-core": "^6.7.2",

0 commit comments

Comments
 (0)