mirror of
https://github.com/less/less.js.git
synced 2026-02-08 22:15:04 -05:00
Parser no longer requires environment
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
var contexts = require("./contexts.js");
|
||||
var getImportManager = module.exports = function(environment, env, Parser) {
|
||||
var contexts = require("./contexts.js"),
|
||||
Parser = require('./parser/parser.js');
|
||||
|
||||
var getImportManager = module.exports = function(environment, env) {
|
||||
var rootFilename = env && env.filename;
|
||||
return {
|
||||
paths: env.paths || [], // Search paths, when importing
|
||||
@@ -9,6 +11,11 @@ var getImportManager = module.exports = function(environment, env, Parser) {
|
||||
contentsIgnoredChars: env.contentsIgnoredChars, // lines inserted, not in the original less
|
||||
mime: env.mime, // MIME type of .less files
|
||||
error: null, // Error in parsing/evaluating an import
|
||||
getAbsolutePath: function(env, filename) {
|
||||
// proxy needed for "DebugInfo"
|
||||
// I hope one day we can remove this function
|
||||
return environment.getAbsolutePath(env, filename);
|
||||
},
|
||||
push: function (path, currentFileInfo, importOptions, callback) {
|
||||
var parserImports = this;
|
||||
this.queue.push(path);
|
||||
@@ -68,7 +75,7 @@ var getImportManager = module.exports = function(environment, env, Parser) {
|
||||
if (importOptions.inline) {
|
||||
fileParsedFunc(null, contents, resolvedFilename);
|
||||
} else {
|
||||
new(Parser)(newEnv, getImportManager(environment, env, Parser)).parse(contents, function (e, root) {
|
||||
new(Parser)(newEnv, getImportManager(environment, env)).parse(contents, function (e, root) {
|
||||
fileParsedFunc(e, root, resolvedFilename);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -4,12 +4,12 @@ module.exports = function(environment) {
|
||||
data: require('./data/index.js'),
|
||||
tree: require('./tree/index.js'),
|
||||
visitor: require('./visitor/index.js'),
|
||||
Parser: require('./parser/parser.js')(environment),
|
||||
Parser: require('./parser/parser.js'),
|
||||
functions: require('./functions/index.js')(environment),
|
||||
contexts: require("./contexts.js"),
|
||||
environment: environment
|
||||
};
|
||||
less.render = require("./render.js")(less.Parser, environment);
|
||||
less.render = require("./render.js")(environment);
|
||||
|
||||
return less;
|
||||
};
|
||||
|
||||
@@ -4,7 +4,6 @@ var LessError = require('../less-error.js'),
|
||||
getParserInput = require("./parser-input.js"),
|
||||
utils = require("../utils.js");
|
||||
|
||||
module.exports = function(environment) {
|
||||
//
|
||||
// less.js - parser
|
||||
//
|
||||
@@ -74,7 +73,7 @@ var Parser = function Parser(env, imports) {
|
||||
|
||||
function getDebugInfo(index) {
|
||||
var filename = env.currentFileInfo.filename;
|
||||
filename = environment.getAbsolutePath(env, filename);
|
||||
filename = imports.getAbsolutePath(env, filename);
|
||||
|
||||
return {
|
||||
lineNumber: utils.getLocation(index, parserInput.getInput()).line + 1,
|
||||
@@ -1589,5 +1588,4 @@ Parser.serializeVars = function(vars) {
|
||||
return s;
|
||||
};
|
||||
|
||||
return Parser;
|
||||
};
|
||||
module.exports = Parser;
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
var PromiseConstructor = typeof Promise === 'undefined' ? require('promise') : Promise,
|
||||
contexts = require("./contexts.js"),
|
||||
getImportManager = require("./imports.js");
|
||||
getImportManager = require("./imports.js"),
|
||||
Parser = require('./parser/parser.js');
|
||||
|
||||
var render = function(Parser, environment) {
|
||||
var render = function(environment) {
|
||||
var ParseTree = require("./parse-tree.js")(environment);
|
||||
return function (input, options, callback) {
|
||||
options = options || {};
|
||||
@@ -22,7 +23,7 @@ var render = function(Parser, environment) {
|
||||
});
|
||||
} else {
|
||||
var env = new contexts.parseEnv(options),
|
||||
imports = getImportManager(environment, env, Parser);
|
||||
imports = getImportManager(environment, env);
|
||||
|
||||
var parser = new(Parser)(env, imports);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user