fbcb0b99ac
Using lessc to check a less file results in a NameError if the file references a variable defined in a file that inherits it. This commit adds a new linter that just calls the less parser instead. The variable g:syntastic_less_use_less_lint should be set to use the linter over lessc.
58 lines
1.3 KiB
JavaScript
58 lines
1.3 KiB
JavaScript
// Generated by CoffeeScript 1.3.3
|
|
(function() {
|
|
var args, fs, less, options, parser;
|
|
|
|
fs = require('fs');
|
|
|
|
less = require('less');
|
|
|
|
args = process.argv.slice(1);
|
|
|
|
options = {};
|
|
|
|
args = args.filter(function(arg) {
|
|
var match;
|
|
match = arg.match(/^-I(.+)$/);
|
|
if (match) {
|
|
options.paths.push(match[1]);
|
|
return false;
|
|
}
|
|
match = arg.match(/^--?([a-z][\-0-9a-z]*)(?:=([^\s]+))?$/i);
|
|
if (match) {
|
|
arg = match[1];
|
|
} else {
|
|
return arg;
|
|
}
|
|
switch (arg) {
|
|
case 'strict-imports':
|
|
return options.strictImports = true;
|
|
case 'include-path':
|
|
return options.paths = match[2].split(os.type().match(/Windows/) ? ';' : ':').map(function(p) {
|
|
if (p) {
|
|
return path.resolve(process.cwd(), p);
|
|
}
|
|
});
|
|
case 'O0':
|
|
return options.optimization = 0;
|
|
case 'O1':
|
|
return options.optimization = 1;
|
|
case 'O2':
|
|
return options.optimization = 2;
|
|
}
|
|
});
|
|
|
|
options.filename = args[1];
|
|
|
|
parser = new less.Parser(options);
|
|
|
|
fs.readFile(options.filename, 'utf-8', function(err, data) {
|
|
return parser.parse(data, function(err, tree) {
|
|
if (err) {
|
|
less.writeError(err);
|
|
return process.exit(1);
|
|
}
|
|
});
|
|
});
|
|
|
|
}).call(this);
|