~ chicken-core (chicken-5) /misc/flymake-chicken.el
Trap1;;;; flymake for CHICKEN
2
3;; Taken from:
4;; https://github.com/sroccaserra/emacs/blob/master/flymake-lua.el
5
6;;
7;; Flymake for Lua
8;;
9;; Usage:
10;; (require 'flymake-lua)
11;; (add-hook 'lua-mode-hook 'flymake-lua-load)
12;;
13;; Note: litterally stolen from Steve Purcell's Flymake Ruby.
14;; See http://github.com/purcell/emacs.d/blob/master/site-lisp/flymake-ruby/flymake-ruby.el
15;;
16
17(require 'flymake)
18
19(defgroup flymake-chicken nil
20 "Flymake CHICKEN Customizations")
21
22(defcustom flymake-chicken-program "chicken-flymake"
23 "How to invoke csc."
24 :type 'file
25 :group 'flymake-chicken)
26
27(defun flymake-create-temp-in-system-tempdir (filename prefix)
28 (make-temp-file (or prefix "flymake-chicken")))
29
30(defun flymake-chicken-init ()
31 (list flymake-chicken-program
32 (list (flymake-init-create-temp-buffer-copy
33 'flymake-create-temp-in-system-tempdir))))
34
35(defvar flymake-chicken-allowed-file-name-masks
36 '(("\\.scm\\'" flymake-chicken-init)))
37
38(defvar flymake-chicken-err-line-patterns
39 '((" *(\\(.+\\):\\([0-9]+\\)) *"
40 1 2)
41 ("\\(Error\\|Warning\\|Note\\): *(line \\([0-9.]*\\))"
42 nil 2)))
43
44;(defvar flymake-lua-err-line-patterns
45; '(("^.*luac[0-9.]*\\(.exe\\)?: *\\(.*\\):\\([0-9]+\\): \\(.*\\)$"
46; 2 3 nil 4)))
47
48;;;###autoload
49(defun flymake-chicken-mode ()
50 (interactive)
51 (when (and (not (null buffer-file-name)) (file-writable-p buffer-file-name))
52 (set (make-local-variable 'flymake-allowed-file-name-masks) flymake-chicken-allowed-file-name-masks)
53 (set (make-local-variable 'flymake-err-line-patterns) flymake-chicken-err-line-patterns)
54 (flymake-mode t)))
55
56(provide 'flymake-chicken)