Skip to content

Instantly share code, notes, and snippets.

@saltycrane
Last active March 13, 2017 20:34
Show Gist options
  • Save saltycrane/5cb9ecaf39e0fbf617db490bf3d7c385 to your computer and use it in GitHub Desktop.
Save saltycrane/5cb9ecaf39e0fbf617db490bf3d7c385 to your computer and use it in GitHub Desktop.
(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://melpa.org/packages/") t)
(package-initialize)
(setq package-selected-packages (quote (web-mode f flycheck)))
;;; Flow (JS) flycheck config (http://flowtype.org)
;; from https://github.com/bodil/emacs.d/blob/master/bodil/bodil-js.el
(require 'f)
(require 'json)
(require 'flycheck)
(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))))
(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)))
(cdr (assoc 'errors o))))))
(flycheck-define-checker javascript-flow
"Javascript type checking using Flow."
:command ("flow" "--json" source-original)
:error-parser flycheck-parse-flow
:modes web-mode
:next-checkers ((error . javascript-eslint))
)
(add-to-list 'flycheck-checkers 'javascript-flow)
(add-hook 'after-init-hook #'global-flycheck-mode)
(require 'web-mode)
(add-to-list 'auto-mode-alist '("\\.js$" . web-mode))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment