;;; flymake-elixir.el --- A flymake handler for elixir-mode .ex files. ;; ;; Copyright (C) 2010-2013 Sylvain Benner ;; ;;; Author: Sylvain Benner ;;; Created: 10 Apr 2013 ;; Version: 0.5 ;;; Package-Pequires: ((flymake-easy "0.1")) ;; ;; This file is not part of GNU Emacs. ;; ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;; ;;; Commentary: ;; ;; Usage: ;; (require 'flymake-elixir) ;; (add-hook 'elixir-mode-hook 'flymake-elixir-load) ;; ;; Based on flymake-ruby, from Steve Purcell ;; ;; Uses flymake-easy, from Steve Purcell ;;; Code: (require 'flymake-easy) (defconst flymake-elixir-err-line-patterns '(("^\\(** (.*) \\)?\\(.*\.ex\\):\\([0-9]+\\): \\(.*\\)$" 2 3 nil 4))) (defconst flymake-elixir-warn-regex (regexp-opt (list "^redefining" "^export_all" "future reserved" "deprecated" "shadowed" "always matches$" "obsolete$" "unused$") t)) (defvar flymake-elixir-executable "elixirc" "The elixir executable to use for syntax checking.") (defun flymake-elixir-command (filename) "Construct a command that flymake can use to check elixir source." (list flymake-elixir-executable "--ignore-module-conflict" ; needed to prevent from module redefinition warning. "+warn_obsolete_guard" "+warn_unused_import" "+warn_shadow_vars" "+warn_export_vars" "+strong_validation" "+report" filename)) ;;;###autoload (defun flymake-elixir-load () "Configure flymake mode to check the current buffer's elixir syntax." (interactive) (flymake-easy-load 'flymake-elixir-command flymake-elixir-err-line-patterns 'tempdir "ex" flymake-elixir-warn-regex)) (provide 'flymake-elixir) ;;; flymake-elixir.el ends here