diff --git a/lib/less/imports.js b/lib/less/imports.js index e31a3757..d0e149d1 100644 --- a/lib/less/imports.js +++ b/lib/less/imports.js @@ -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); }); } diff --git a/lib/less/non-node-index.js b/lib/less/non-node-index.js index 7abfc1b7..2b2ed2be 100644 --- a/lib/less/non-node-index.js +++ b/lib/less/non-node-index.js @@ -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; }; diff --git a/lib/less/parser/parser.js b/lib/less/parser/parser.js index c2c2ed16..9e62b9fc 100644 --- a/lib/less/parser/parser.js +++ b/lib/less/parser/parser.js @@ -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; diff --git a/lib/less/render.js b/lib/less/render.js index fcce3824..83f90986 100644 --- a/lib/less/render.js +++ b/lib/less/render.js @@ -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);