aboutsummaryrefslogtreecommitdiff
path: root/vim/ftplugin/javascript/jslint/runjslint.wsf
diff options
context:
space:
mode:
authorBen Beltran <ben@nsovocal.com>2013-03-28 14:54:19 -0600
committerBen Beltran <ben@nsovocal.com>2013-03-28 14:54:19 -0600
commit6ffda1fa75a1a805ea6d64d7b582d70257a2cf56 (patch)
tree4f7f3b99ef2389235a6feb70ca7ece8f4faec1d5 /vim/ftplugin/javascript/jslint/runjslint.wsf
parent162b65d8624bac4e04a3ac6ccd46ce7e8975fb81 (diff)
parent6c396295dcca469828e84ce3ff450f207a12736d (diff)
Merge branch 'master' of github.com:benbeltran/dotfiles
Diffstat (limited to 'vim/ftplugin/javascript/jslint/runjslint.wsf')
-rw-r--r--vim/ftplugin/javascript/jslint/runjslint.wsf48
1 files changed, 48 insertions, 0 deletions
diff --git a/vim/ftplugin/javascript/jslint/runjslint.wsf b/vim/ftplugin/javascript/jslint/runjslint.wsf
new file mode 100644
index 0000000..d6c24bd
--- /dev/null
+++ b/vim/ftplugin/javascript/jslint/runjslint.wsf
@@ -0,0 +1,48 @@
+<job>
+<script src="jslint-core.js" language="javascript"></script>
+<script language="javascript">
+/*global JSLINT load readline WScript */
+
+var readSTDIN = function() {
+ var line,
+ input = [],
+ emptyCount = 0,
+ i;
+
+ var stdIn = WScript.stdIn,
+ stdOut = WScript.stdOut;
+
+ while (!stdIn.atEndofStream) {
+ line = stdIn.readLine();
+ input.push(line);
+ }
+
+ return input.join("\n");
+};
+
+var body = readSTDIN() || arguments[0],
+ ok = JSLINT(body),
+ i,
+ error,
+ errorType,
+ nextError,
+ errorCount,
+ WARN = 'WARNING',
+ ERROR = 'ERROR';
+
+if (!ok) {
+ errorCount = JSLINT.errors.length;
+ for (i = 0; i < errorCount; i += 1) {
+ error = JSLINT.errors[i];
+ errorType = WARN;
+ if (error && error.reason && error.reason.match(/^Stopping/) === null) {
+ // If jslint stops next, this was an actual error
+ if (nextError && nextError.reason && nextError.reason.match(/^Stopping/) !== null) {
+ errorType = ERROR;
+ }
+ WScript.echo([error.line, error.character, errorType, error.reason].join(":"));
+ }
+ }
+}
+</script>
+</job>