support comments. Add failing test case for when mixin call does not have parent selectors

This commit is contained in:
Luke Page
2013-03-21 16:51:04 +00:00
parent aa802bd84c
commit 493d6facf2
5 changed files with 25 additions and 14 deletions

View File

@@ -575,9 +575,9 @@ less.Parser = function Parser(env) {
if (input.charAt(i) !== '/') return;
if (input.charAt(i + 1) === '/') {
return new(tree.Comment)($(/^\/\/.*/), true);
return new(tree.Comment)($(/^\/\/.*/), true, i, env.currentFileInfo);
} else if (comment = $(/^\/\*(?:[^*]|\*+[^\/*])*\*+\/\n?/)) {
return new(tree.Comment)(comment);
return new(tree.Comment)(comment, false, i, env.currentFileInfo);
}
},

View File

@@ -1,15 +1,16 @@
(function (tree) {
tree.Comment = function (value, silent) {
tree.Comment = function (value, silent, index, currentFileInfo) {
this.value = value;
this.silent = !!silent;
this.currentFileInfo = currentFileInfo;
};
tree.Comment.prototype = {
type: "Comment",
toCSS: function (env) {
return env.compress ? '' : this.value;
return (env.compress || (this.currentFileInfo && this.currentFileInfo.silent)) ? '' : this.value;
},
eval: function () { return this }
eval: function () { return this; }
};
})(require('../tree'));

View File

@@ -1,13 +1,9 @@
@media only screen and (max-width: 200px) {
width: 480px;
}
@media (max-width: 1200px) {
/* a comment */
}
/*
The media statements - 1 is invalid (no selector) and 1 is just a comment
We should band invalid media queries solving the 1st case and not treat comments as rules,
solving the 2nd issue.
The media statement above is invalid (no selector)
We should ban invalid media queries with properties and no selector?
*/
.visible {
color: red;
@@ -41,6 +37,10 @@
.b .c {
color: green;
}
.y {
pulled-in: yes;
}
/* comment pulled in */
.visible {
extend: test;
}

View File

@@ -2,9 +2,8 @@
@import (silent) url("css-3.less");
@import (silent) url("media.less");
/*
The media statements - 1 is invalid (no selector) and 1 is just a comment
We should band invalid media queries solving the 1st case and not treat comments as rules,
solving the 2nd issue.
The media statement above is invalid (no selector)
We should ban invalid media queries with properties and no selector?
*/
@import (silent) url("import/import-silent.less");
@@ -12,6 +11,8 @@
.z();
}
.zz();
.visible:extend(.z all) {
extend: test;
}

View File

@@ -31,4 +31,13 @@
.hidden {
hidden: true;
}
}
/* comment is not output */
.zz {
.y {
pulled-in: yes;
}
/* comment pulled in */
}