Skip to content

Commit

Permalink
Better Flycheck checker for Flow.
Browse files Browse the repository at this point in the history
  • Loading branch information
bodil committed Jan 15, 2015
1 parent dc8abd7 commit 9601884
Showing 1 changed file with 27 additions and 12 deletions.
39 changes: 27 additions & 12 deletions bodil/bodil-js.el
Expand Up @@ -125,19 +125,34 @@
(define-key flow-mode-map (kbd ":") nil)
(add-to-list 'auto-mode-alist '("\\.jsx$" . flow-mode))

(package-require 'f)
(require 'f)
(require 'json)
(defun flycheck-parse-flow (output checker buffer)
(let ((json-array-type 'list))
(let ((o (json-read-from-string output)))
(mapcar #'(lambda (errp)
(let ((err (cadr (assoc 'message errp))))
(let ((e
(flycheck-error-new
:line (cdr (assoc 'line err))
:column (cdr (assoc 'start err))
:level 'error
:message (cdr (assoc 'descr err))
:filename (f-relative
(cdr (assoc 'path err))
(f-dirname (file-truename
(buffer-file-name))))
:buffer buffer
:checker checker)))
(message (prin1-to-string e))
e)))
(cdr (assoc 'errors o))))))

(flycheck-define-checker javascript-flow
"A JavaScript syntax and style checker using Flow."
:command ("flow" source-original)
:error-patterns
((error line-start
(file-name)
":"
line
":"
(minimal-match (one-or-more not-newline))
": "
(message (minimal-match (and (one-or-more anything) "\n")))
line-end))
"Static type checking using Flow."
:command ("flow" "--json" source-original)
:error-parser flycheck-parse-flow
:modes flow-mode)
(add-to-list 'flycheck-checkers 'javascript-flow)

Expand Down

0 comments on commit 9601884

Please sign in to comment.