Spaces:
Running
Running
// CodeMirror, copyright (c) by Marijn Haverbeke and others | |
// Distributed under an MIT license: http://codemirror.net/LICENSE | |
// Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js | |
// declare global: coffeelint | |
(function(mod) { | |
if (typeof exports == "object" && typeof module == "object") // CommonJS | |
mod(require("../../lib/codemirror")); | |
else if (typeof define == "function" && define.amd) // AMD | |
define(["../../lib/codemirror"], mod); | |
else // Plain browser env | |
mod(CodeMirror); | |
})(function(CodeMirror) { | |
; | |
CodeMirror.registerHelper("lint", "coffeescript", function(text) { | |
var found = []; | |
if (!window.coffeelint) { | |
if (window.console) { | |
window.console.error("Error: window.coffeelint not defined, CodeMirror CoffeeScript linting cannot run."); | |
} | |
return found; | |
} | |
var parseError = function(err) { | |
var loc = err.lineNumber; | |
found.push({from: CodeMirror.Pos(loc-1, 0), | |
to: CodeMirror.Pos(loc, 0), | |
severity: err.level, | |
message: err.message}); | |
}; | |
try { | |
var res = coffeelint.lint(text); | |
for(var i = 0; i < res.length; i++) { | |
parseError(res[i]); | |
} | |
} catch(e) { | |
found.push({from: CodeMirror.Pos(e.location.first_line, 0), | |
to: CodeMirror.Pos(e.location.last_line, e.location.last_column), | |
severity: 'error', | |
message: e.message}); | |
} | |
return found; | |
}); | |
}); | |