Skip to content

Commit 9280b53

Browse files
committed
make import visitor stack up frame scopes
1 parent 57b41f0 commit 9280b53

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

lib/less/import-visitor.js

+29
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,35 @@
2424
visitRule: function (ruleNode, visitArgs) {
2525
visitArgs.visitDeeper = false;
2626
return ruleNode;
27+
},
28+
visitDirective: function (directiveNode, visitArgs) {
29+
this.env.frames.unshift(directiveNode);
30+
return directiveNode;
31+
},
32+
visitDirectiveOut: function (directiveNode) {
33+
this.env.frames.shift();
34+
},
35+
visitMixinDefinition: function (mixinDefinitionNode, visitArgs) {
36+
this.env.frames.unshift(mixinDefinitionNode);
37+
return mixinDefinitionNode;
38+
},
39+
visitMixinDefinitionOut: function (mixinDefinitionNode) {
40+
this.env.frames.shift();
41+
},
42+
visitRulesetDefinition: function (rulesetNode, visitArgs) {
43+
this.env.frames.unshift(rulesetNode);
44+
return rulesetNode;
45+
},
46+
visitRulesetDefinitionOut: function (rulesetNode) {
47+
this.env.frames.shift();
48+
},
49+
visitMedia: function (mediaNode, visitArgs) {
50+
this.env.frames.unshift(mediaNode.ruleset);
51+
return mediaNode;
52+
},
53+
visitMediaOut: function (mediaNode) {
54+
this.env.frames.shift();
2755
}
2856
};
57+
2958
})(require('./tree'));

lib/less/visitor.js

+4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
if ((!visitArgs || visitArgs.visitDeeper) && node && node.accept) {
2626
node.accept(this);
2727
}
28+
funcName = funcName + "Out";
29+
if (this._implementation[funcName]) {
30+
this._implementation[funcName](node);
31+
}
2832
return node;
2933
},
3034
visitArray: function(nodes) {

0 commit comments

Comments
 (0)