forked from purcell/emacs.d
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflymake-ruby.el
31 lines (24 loc) · 1.15 KB
/
flymake-ruby.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
;;; A flymake handler for ruby-mode files
;;;
;;; Author: Steve Purcell
;;; Homepage: http://github.com/purcell/emacs.d/blob/master/site-lisp/flymake-ruby/flymake-ruby.el
;;;
;;; Usage:
;;; (require 'flymake-ruby)
;;; (add-hook 'ruby-mode-hook 'flymake-ruby-load)
(defvar flymake-ruby-err-line-patterns '(("^\\(.*\\):\\([0-9]+\\): \\(.*\\)$" 1 2 nil 3)))
(defvar flymake-ruby-allowed-file-name-masks '((".+\\.\\(rb\\|rake\\)$" flymake-ruby-init)
("Rakefile$" flymake-ruby-init)))
;; Not provided by flymake itself, curiously
(defun flymake-create-temp-in-system-tempdir (filename prefix)
(make-temp-file (or prefix "flymake-ruby")))
;; Invoke ruby with '-c' to get syntax checking
(defun flymake-ruby-init ()
(list "ruby" (list "-c" (flymake-init-create-temp-buffer-copy
'flymake-create-temp-in-system-tempdir))))
(defun flymake-ruby-load ()
(interactive)
(set (make-local-variable 'flymake-allowed-file-name-masks) flymake-ruby-allowed-file-name-masks)
(set (make-local-variable 'flymake-err-line-patterns) flymake-ruby-err-line-patterns)
(flymake-mode t))
(provide 'flymake-ruby)