Skip to content

Commit

Permalink
implemented prefixed (as in block level import) @extend
Browse files Browse the repository at this point in the history
  • Loading branch information
Cactusbone committed Jan 26, 2017
1 parent 90a7d13 commit e773503
Showing 1 changed file with 21 additions and 4 deletions.
25 changes: 21 additions & 4 deletions lib/visitor/normalizer.js
Original file line number Diff line number Diff line change
Expand Up @@ -403,10 +403,13 @@ Normalizer.prototype.extend = function(group, selectors){
var groups = map[extend.selector];
if (!groups) {
if (extend.optional) return;
var err = new Error('Failed to @extend "' + extend.selector + '"');
err.lineno = extend.lineno;
err.column = extend.column;
throw err;
groups = self._checkForPrefixedGroups(extend.selector);
if(!groups) {
var err = new Error('Failed to @extend "' + extend.selector + '"');
err.lineno = extend.lineno;
err.column = extend.column;
throw err;
}
}
selectors.forEach(function(selector){
var node = new nodes.Selector;
Expand All @@ -422,3 +425,17 @@ Normalizer.prototype.extend = function(group, selectors){

group.block = this.visit(group.block);
};

Normalizer.prototype._checkForPrefixedGroups = function(selector){
var prefix = [];
var map = this.map;
var result = null;
this.stack.find(function(stackElementArray){
var stackElement = stackElementArray[0];
prefix.push(stackElement.val);
var fullSelector = prefix.join(" ") + " " + selector;
result = map[fullSelector];
return result != null;
});
return result;
};

0 comments on commit e773503

Please sign in to comment.