mirror of
https://github.com/less/less.js.git
synced 2026-01-22 21:58:14 -05:00
Add import visitor
This commit is contained in:
2
Makefile
2
Makefile
@@ -40,6 +40,7 @@ less:
|
||||
${SRC}/tree.js\
|
||||
${SRC}/env.js\
|
||||
${SRC}/visitor.js\
|
||||
${SRC}/import-visitor.js\
|
||||
${SRC}/browser.js\
|
||||
build/amd.js >> ${DIST}
|
||||
@@echo "})(window);" >> ${DIST}
|
||||
@@ -62,6 +63,7 @@ rhino:
|
||||
${SRC}/parser.js\
|
||||
${SRC}/env.js\
|
||||
${SRC}/visitor.js\
|
||||
${SRC}/import-visitor.js\
|
||||
${SRC}/functions.js\
|
||||
${SRC}/colors.js\
|
||||
${SRC}/tree/*.js\
|
||||
|
||||
17
lib/less/import-visitor.js
Normal file
17
lib/less/import-visitor.js
Normal file
@@ -0,0 +1,17 @@
|
||||
(function (tree) {
|
||||
tree.importVisitor = function(root) {
|
||||
this._visitor = new tree.visitor(this);
|
||||
this._visitor.visit(root);
|
||||
};
|
||||
|
||||
tree.importVisitor.prototype = {
|
||||
visitImport: function (importNode, visitArgs) {
|
||||
|
||||
return importNode;
|
||||
},
|
||||
visitRule: function (ruleNode, visitArgs) {
|
||||
visitArgs.visitDeeper = false;
|
||||
return ruleNode;
|
||||
}
|
||||
};
|
||||
})(require('./tree'));
|
||||
@@ -214,5 +214,6 @@ require('./env');
|
||||
require('./functions');
|
||||
require('./colors');
|
||||
require('./visitor.js');
|
||||
require('./import-visitor.js');
|
||||
|
||||
for (var k in less) { exports[k] = less[k]; }
|
||||
|
||||
@@ -467,6 +467,8 @@ less.Parser = function Parser(env) {
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
new tree.importVisitor(root);
|
||||
|
||||
finish = function (e) {
|
||||
e = error || e || parser.imports.error;
|
||||
|
||||
@@ -9,7 +9,7 @@ tree.Extend = function Extend(elements, option, index) {
|
||||
tree.Extend.prototype = {
|
||||
type: "Extend",
|
||||
accept: function (visitor) {
|
||||
this.selector = visitor.visit(this.ruleset);
|
||||
this.selector = visitor.visit(this.selector);
|
||||
},
|
||||
eval: function (env, selectors) {
|
||||
var selfSelectors = findSelfSelectors(selectors || env.selectors),
|
||||
|
||||
@@ -20,15 +20,15 @@
|
||||
visitArgs;
|
||||
if (func) {
|
||||
visitArgs = {visitDeeper: true};
|
||||
node = func(node);
|
||||
node = func(node, visitArgs);
|
||||
}
|
||||
if ((!visitArgs || visitArgs.visitDeeper) && node.accept) {
|
||||
if ((!visitArgs || visitArgs.visitDeeper) && node && node.accept) {
|
||||
node.accept(this);
|
||||
}
|
||||
return node;
|
||||
},
|
||||
visitArray: function(nodes) {
|
||||
var i, newNodes;
|
||||
var i, newNodes = [];
|
||||
for(i = 0; i < nodes.length; i++) {
|
||||
var evald = this.visit(nodes[i]);
|
||||
if (evald instanceof Array) {
|
||||
|
||||
Reference in New Issue
Block a user