Emacs Func: Use ~/bin/jslint4java-1.4.4.jar to automatically JSLint the Javascript file
;;; C-x c calls jslint and outputs to the *compilation* buffer. | |
(setq jslint-wrapper (concat "java -jar " (substitute-in-file-name "$HOME") "/bin/jslint4java-1.4.4.jar ")) | |
(require 'compile) | |
(add-hook 'javascript-mode-hook | |
(lambda () | |
(set (make-local-variable 'compilation-read-command) nil) | |
(set (make-local-variable 'compile-command) | |
(concat jslint-wrapper buffer-file-name)) | |
(local-set-key (kbd "C-x c") 'compile))) | |
;;;auto check on save of a javascript file | |
(defun jslint-hook () | |
(let* ((filename (buffer-file-name)) | |
(suffix (downcase (file-name-extension filename)))) | |
(if (and filename (string= suffix "js")) | |
(call-interactively 'compile)))) | |
(add-hook 'after-save-hook 'jslint-hook) | |
(defun notify-compilation-result(buffer msg) | |
"Notify that the compilation is finished, | |
close the *compilation* buffer if the compilation is successful, | |
and set the focus back to Emacs frame" | |
(if (string-match "^finished" msg) | |
(progn | |
(delete-windows-on buffer) | |
(tooltip-show "\n Compilation Successful :-) \n ")) | |
(tooltip-show "\n Compilation Failed :-( \n ")) | |
(setq current-frame (car (car (cdr (current-frame-configuration))))) | |
(select-frame-set-input-focus current-frame)) | |
(add-to-list 'compilation-finish-functions 'notify-compilation-result) |
This comment has been minimized.
This comment has been minimized.
Could you invoke it via M-x compile instead? I designed the output to be roughly compiler like so you could jump to the errors easily. |
This comment has been minimized.
This comment has been minimized.
Hey, happygiraffe. I can't quit understand you. What's your requirement? |
This comment has been minimized.
This comment has been minimized.
Sorry, I was wondering if, instead of invoking this function into a separate buffer, you could use the standard M-x compile functionality. Then you automatically get output in a
|
This comment has been minimized.
This comment has been minimized.
(the above also needs:)
|
This comment has been minimized.
This comment has been minimized.
Thanks happygiraffe. I rewrote it based on your comment, :) |
This comment has been minimized.
This comment has been minimized.
Also check out https://github.com/purcell/flymake-jslint, which uses flymake to show jslint hints directly in the javascript buffer. -Steve |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Why not node-jslint? https://github.com/reid/node-jslint