mirror of
https://github.com/less/less.js.git
synced 2026-05-01 03:00:22 -04:00
Added media query support.
* env.dumpLineNumbers was being lost when doing "offline" compilation (within node.js) * Added documentation for the changed options * --line-numbers now takes a parameter (either "comments", "mediaquery" or "all") * The system can now again output mediaqueries for FireLESS * Moved comments tests in debug/comments, will duplicate for mediaquery and for "all" Everything is still utterly broken though, tests still fail.
This commit is contained in:
committed by
Luke Page
parent
84908b0038
commit
959e22f5ff
@@ -75,7 +75,7 @@ args = args.filter(function (arg) {
|
||||
case 'O1': options.optimization = 1; break;
|
||||
case 'O2': options.optimization = 2; break;
|
||||
case 'line-numbers':
|
||||
options.dumpLineNumbers = true;
|
||||
options.dumpLineNumbers = match[2];
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -35,8 +35,9 @@ if (less.env === 'development') {
|
||||
if (/!watch/.test(location.hash)) {
|
||||
less.watch();
|
||||
}
|
||||
if (/!dumpLineNumbers/.test(location.hash)) {
|
||||
less.dumpLineNumbers = true;
|
||||
var dumpLineNumbers = /!dumpLineNumbers:(comments|mediaquery|all)/.exec(location.hash);
|
||||
if (dumpLineNumbers) {
|
||||
less.dumpLineNumbers = dumpLineNumbers[1];
|
||||
}
|
||||
less.watchTimer = setInterval(function () {
|
||||
if (less.watchMode) {
|
||||
|
||||
@@ -119,7 +119,8 @@ less.Parser.importer = function (file, paths, callback, env) {
|
||||
new(less.Parser)({
|
||||
paths: [path.dirname(pathname)].concat(paths),
|
||||
filename: pathname,
|
||||
contents: env.contents
|
||||
contents: env.contents,
|
||||
dumpLineNumbers: env.dumpLineNumbers
|
||||
}).parse(data, function (e, root) {
|
||||
callback(e, root);
|
||||
});
|
||||
|
||||
@@ -41,6 +41,12 @@ var lessc_helper = {
|
||||
sys.puts(" the number, the less nodes it will create in the");
|
||||
sys.puts(" tree. This could matter for debugging, or if you");
|
||||
sys.puts(" want to access the individual nodes in the tree.");
|
||||
sys.puts(" --line-numbers=TYPE Outputs filename and line numbers.");
|
||||
sys.puts(" TYPE can be either 'comments', which will output");
|
||||
sys.puts(" the debug info within comments, 'mediaquery'");
|
||||
sys.puts(" that will output the information within a fake");
|
||||
sys.puts(" media query which is compatible with the SASS");
|
||||
sys.puts(" format, and 'all' which will do both.");
|
||||
sys.puts("");
|
||||
sys.puts("Report bugs to: http://github.com/cloudhead/less.js/issues");
|
||||
sys.puts("Home page: <http://lesscss.org/>");
|
||||
|
||||
@@ -133,7 +133,9 @@ tree.Ruleset.prototype = {
|
||||
rulesets = [], // node.Ruleset instances
|
||||
paths = [], // Current selectors
|
||||
selector, // The fully rendered selector
|
||||
lineNumbersComment, // A comment with line number for debugging.
|
||||
lineNumbersInfo, // Line number debugging, either as comment or fake media query.
|
||||
lineNumbersComment, // Line number debug info as comment
|
||||
lineNumbersMediaQuery, // Line number debug info as media query
|
||||
rule;
|
||||
|
||||
if (! this.root) {
|
||||
@@ -172,9 +174,24 @@ tree.Ruleset.prototype = {
|
||||
css.push(rules.join(env.compress ? '' : '\n'));
|
||||
} else {
|
||||
if (rules.length > 0) {
|
||||
lineNumbersComment = "";
|
||||
if (env.dumpLineNumbers && !env.compress)
|
||||
lineNumbersInfo = "";
|
||||
lineNumbersComment = '';
|
||||
lineNumbersMediaQuery = '';
|
||||
if (env.dumpLineNumbers && !env.compress) {
|
||||
lineNumbersComment = '/* line ' + this.sourceLineNumber + ', ' + env.filename + ' */\n';
|
||||
lineNumbersMediaQuery = '@media -sass-debug-info{filename{font-family:"' + env.filename + '";}line{font-family:"' + this.sourceLineNumber + '";}}\n';
|
||||
switch(env.dumpLineNumbers) {
|
||||
case 'comments':
|
||||
lineNumbersInfo = lineNumbersComment;
|
||||
break;
|
||||
case 'mediaquery':
|
||||
lineNumbersInfo = lineNumbersMediaQuery;
|
||||
break;
|
||||
case 'all':
|
||||
lineNumbersInfo = lineNumbersComment+lineNumbersMediaQuery;
|
||||
break;
|
||||
}
|
||||
}
|
||||
selector = paths.map(function (p) {
|
||||
return p.map(function (s) {
|
||||
return s.toCSS(env);
|
||||
@@ -189,7 +206,7 @@ tree.Ruleset.prototype = {
|
||||
}
|
||||
rules = _rules;
|
||||
|
||||
css.push(lineNumbersComment + selector +
|
||||
css.push(lineNumbersInfo + selector +
|
||||
(env.compress ? '{' : ' {\n ') +
|
||||
rules.join(env.compress ? '' : '\n ') +
|
||||
(env.compress ? '}' : '\n}\n'));
|
||||
|
||||
@@ -46,7 +46,7 @@ runTestSet(null, "errors/", function(name, err, compiledLess) {
|
||||
sys.puts("");
|
||||
});});
|
||||
|
||||
runTestSet({dumpLineNumbers: true}, "debug/");
|
||||
runTestSet({dumpLineNumbers: 'comments'}, "debug/comments/");
|
||||
|
||||
function runTestSet(options, foldername, verifyFunction) {
|
||||
foldername = foldername || "";
|
||||
|
||||
Reference in New Issue
Block a user