-
Notifications
You must be signed in to change notification settings - Fork 1
/
purscheck.el
34 lines (28 loc) · 1.3 KB
/
purscheck.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
;;; purscheck --- Purescript flycheck support for emacs
;;; Commentary:
;;; Uses a PureScript cheat mode
;;; Code:
(define-derived-mode purescript-mode haskell-mode "PureScript"
"Major mode for PureScript")
(add-to-list 'auto-mode-alist (cons "\\.purs\\'" 'purescript-mode))
(eval-after-load 'flycheck
'(progn
(flycheck-define-checker purs-check
"Use purscheck to flycheck PureScript code."
:command ("purscheck" source source-original temporary-file-name)
:error-patterns
((error line-start
(or (and (zero-or-more " ") "Error at " (file-name) " line " line ", column " column (zero-or-more " ") (or ":" "-") (zero-or-more not-newline))
(and "\"" (file-name) "\" (line " line ", column " column "):"))
(or (message (one-or-more not-newline))
(and (or "\r" "\n" "\r\n")
(message
(zero-or-more " ") (one-or-more not-newline)
(zero-or-more (or "\r" "\n")
(zero-or-more " ")
(one-or-more not-newline)))))
line-end))
:modes purescript-mode)
(add-to-list 'flycheck-checkers 'purs-check)))
(provide 'purscheck)
;;; purscheck ends here