20.012012

Linting javascript: lintnode

Was ist lintnode?

JSLint ist ein tolles Werkzeug, um javascript-Code auf korrekte Syntax und die Einhaltung von Konventionen zu prüfen. Mit lintnode steht ein node.js Server zur Verfügung, der die Nutzung von JSLint stark vereinfacht.

Einbindung in Emacs

Besonders schön ist die Einbindung von lintnode in Emacs gelöst; mit flymake-jslint.el wird eine Javascriptdatei kontinuierlich während des Tippens geprüft; etwaige Fehler in Cursornähe werden durch warnende Hervorhebung des betroffenen Codes angezeigt und in der Modeline erläutert.

Die Konfiguration in der .emacs Datei kann z.B. so aussehen:

;; jslint laden, flymake unterstützung laden
(add-to-list 'load-path "~/.emacs.d/src/lintnode")
(require 'flymake-jslint)
(require 'flymake-cursor)

;; Pfad zum jslint executable
(setq lintnode-location "~/.emacs.d/src/lintnode")

;; jslint konfigurieren
(setq lintnode-jslint-excludes (list 'nomen 'plusplus 'onevar 'eqeqeq
                                     'laxbreak 'undef 'strict))
(setq lintnode-jslint-includes (list 'node 'sloppy))

(setq lintnode-jslint-set "maxlen:100")

;; den lintnode server automatisch starten,;; wenn eine js Datei geöffnet wird
(setq lintnode-autostart t)
(add-hook 'js-mode-hook
          (lambda ()
            (lintnode-hook)))
(add-hook 'js3-mode-hook
          (lambda ()
            (lintnode-hook)))

Im Einsatz sieht das ganze dann etwa so aus:

http://www.joocom.de/blog/wp-content/uploads/wpid-emacs_lintnode.png