Skip to content

Commit 959e22f

Browse files
simonedepontilukeapage
authored andcommitted
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.
1 parent 84908b0 commit 959e22f

File tree

9 files changed

+34
-9
lines changed

9 files changed

+34
-9
lines changed

bin/lessc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ args = args.filter(function (arg) {
7575
case 'O1': options.optimization = 1; break;
7676
case 'O2': options.optimization = 2; break;
7777
case 'line-numbers':
78-
options.dumpLineNumbers = true;
78+
options.dumpLineNumbers = match[2];
7979
break;
8080
}
8181
});

lib/less/browser.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ if (less.env === 'development') {
3535
if (/!watch/.test(location.hash)) {
3636
less.watch();
3737
}
38-
if (/!dumpLineNumbers/.test(location.hash)) {
39-
less.dumpLineNumbers = true;
38+
var dumpLineNumbers = /!dumpLineNumbers:(comments|mediaquery|all)/.exec(location.hash);
39+
if (dumpLineNumbers) {
40+
less.dumpLineNumbers = dumpLineNumbers[1];
4041
}
4142
less.watchTimer = setInterval(function () {
4243
if (less.watchMode) {

lib/less/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,8 @@ less.Parser.importer = function (file, paths, callback, env) {
119119
new(less.Parser)({
120120
paths: [path.dirname(pathname)].concat(paths),
121121
filename: pathname,
122-
contents: env.contents
122+
contents: env.contents,
123+
dumpLineNumbers: env.dumpLineNumbers
123124
}).parse(data, function (e, root) {
124125
callback(e, root);
125126
});

lib/less/lessc_helper.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ var lessc_helper = {
4141
sys.puts(" the number, the less nodes it will create in the");
4242
sys.puts(" tree. This could matter for debugging, or if you");
4343
sys.puts(" want to access the individual nodes in the tree.");
44+
sys.puts(" --line-numbers=TYPE Outputs filename and line numbers.");
45+
sys.puts(" TYPE can be either 'comments', which will output");
46+
sys.puts(" the debug info within comments, 'mediaquery'");
47+
sys.puts(" that will output the information within a fake");
48+
sys.puts(" media query which is compatible with the SASS");
49+
sys.puts(" format, and 'all' which will do both.");
4450
sys.puts("");
4551
sys.puts("Report bugs to: http://github.com/cloudhead/less.js/issues");
4652
sys.puts("Home page: <http://lesscss.org/>");

lib/less/tree/ruleset.js

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,9 @@ tree.Ruleset.prototype = {
133133
rulesets = [], // node.Ruleset instances
134134
paths = [], // Current selectors
135135
selector, // The fully rendered selector
136-
lineNumbersComment, // A comment with line number for debugging.
136+
lineNumbersInfo, // Line number debugging, either as comment or fake media query.
137+
lineNumbersComment, // Line number debug info as comment
138+
lineNumbersMediaQuery, // Line number debug info as media query
137139
rule;
138140

139141
if (! this.root) {
@@ -172,9 +174,24 @@ tree.Ruleset.prototype = {
172174
css.push(rules.join(env.compress ? '' : '\n'));
173175
} else {
174176
if (rules.length > 0) {
175-
lineNumbersComment = "";
176-
if (env.dumpLineNumbers && !env.compress)
177+
lineNumbersInfo = "";
178+
lineNumbersComment = '';
179+
lineNumbersMediaQuery = '';
180+
if (env.dumpLineNumbers && !env.compress) {
177181
lineNumbersComment = '/* line ' + this.sourceLineNumber + ', ' + env.filename + ' */\n';
182+
lineNumbersMediaQuery = '@media -sass-debug-info{filename{font-family:"' + env.filename + '";}line{font-family:"' + this.sourceLineNumber + '";}}\n';
183+
switch(env.dumpLineNumbers) {
184+
case 'comments':
185+
lineNumbersInfo = lineNumbersComment;
186+
break;
187+
case 'mediaquery':
188+
lineNumbersInfo = lineNumbersMediaQuery;
189+
break;
190+
case 'all':
191+
lineNumbersInfo = lineNumbersComment+lineNumbersMediaQuery;
192+
break;
193+
}
194+
}
178195
selector = paths.map(function (p) {
179196
return p.map(function (s) {
180197
return s.toCSS(env);
@@ -189,7 +206,7 @@ tree.Ruleset.prototype = {
189206
}
190207
rules = _rules;
191208

192-
css.push(lineNumbersComment + selector +
209+
css.push(lineNumbersInfo + selector +
193210
(env.compress ? '{' : ' {\n ') +
194211
rules.join(env.compress ? '' : '\n ') +
195212
(env.compress ? '}' : '\n}\n'));
File renamed without changes.

test/less-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ runTestSet(null, "errors/", function(name, err, compiledLess) {
4646
sys.puts("");
4747
});});
4848

49-
runTestSet({dumpLineNumbers: true}, "debug/");
49+
runTestSet({dumpLineNumbers: 'comments'}, "debug/comments/");
5050

5151
function runTestSet(options, foldername, verifyFunction) {
5252
foldername = foldername || "";

0 commit comments

Comments
 (0)