~ chicken-core (chicken-5) /misc/flymake-chicken.el


 1;;;; 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)
Trap