coffeescript-lint.js
11 years ago
coffeescript-lint.min.js
11 years ago
css-lint.js
11 years ago
css-lint.min.js
11 years ago
javascript-lint.js
11 years ago
javascript-lint.min.js
11 years ago
json-lint.js
11 years ago
json-lint.min.js
11 years ago
lint.css
11 years ago
lint.js
11 years ago
lint.min.js
11 years ago
yaml-lint.js
11 years ago
yaml-lint.min.js
11 years ago
javascript-lint.min.js
15 lines
| 1 | |
| 2 | (function(mod){if(typeof exports=="object"&&typeof module=="object") |
| 3 | mod(require("../../lib/codemirror"));else if(typeof define=="function"&&define.amd) |
| 4 | define(["../../lib/codemirror"],mod);else |
| 5 | mod(CodeMirror);})(function(CodeMirror){"use strict";var bogus=["Dangerous comment"];var warnings=[["Expected '{'","Statement body should be inside '{ }' braces."]];var errors=["Missing semicolon","Extra comma","Missing property name","Unmatched "," and instead saw"," is not defined","Unclosed string","Stopping, unable to continue"];function validator(text,options){if(!window.JSHINT)return[];JSHINT(text,options,options.globals);var errors=JSHINT.data().errors,result=[];if(errors)parseErrors(errors,result);return result;} |
| 6 | CodeMirror.registerHelper("lint","javascript",validator);function cleanup(error){fixWith(error,warnings,"warning",true);fixWith(error,errors,"error");return isBogus(error)?null:error;} |
| 7 | function fixWith(error,fixes,severity,force){var description,fix,find,replace,found;description=error.description;for(var i=0;i<fixes.length;i++){fix=fixes[i];find=(typeof fix==="string"?fix:fix[0]);replace=(typeof fix==="string"?null:fix[1]);found=description.indexOf(find)!==-1;if(force||found){error.severity=severity;} |
| 8 | if(found&&replace){error.description=replace;}}} |
| 9 | function isBogus(error){var description=error.description;for(var i=0;i<bogus.length;i++){if(description.indexOf(bogus[i])!==-1){return true;}} |
| 10 | return false;} |
| 11 | function parseErrors(errors,output){for(var i=0;i<errors.length;i++){var error=errors[i];if(error){var linetabpositions,index;linetabpositions=[];if(error.evidence){var tabpositions=linetabpositions[error.line];if(!tabpositions){var evidence=error.evidence;tabpositions=[];Array.prototype.forEach.call(evidence,function(item,index){if(item==='\t'){tabpositions.push(index+1);}});linetabpositions[error.line]=tabpositions;} |
| 12 | if(tabpositions.length>0){var pos=error.character;tabpositions.forEach(function(tabposition){if(pos>tabposition)pos-=1;});error.character=pos;}} |
| 13 | var start=error.character-1,end=start+1;if(error.evidence){index=error.evidence.substring(start).search(/.\b/);if(index>-1){end+=index;}} |
| 14 | error.description=error.reason;error.start=error.character;error.end=end;error=cleanup(error);if(error) |
| 15 | output.push({message:error.description,severity:error.severity,from:CodeMirror.Pos(error.line-1,start),to:CodeMirror.Pos(error.line-1,end)});}}}}); |