From 5921ed3a91c104cf7b43b527f5c940b32ea30d5c Mon Sep 17 00:00:00 2001 From: Gleb Peregud Date: Wed, 29 Feb 2012 14:00:04 +0100 Subject: [PATCH] make C-c C-k aware of rebar and rebar.config --- modules/prelude-erlang.el | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/modules/prelude-erlang.el b/modules/prelude-erlang.el index 46e62ee..bd61344 100644 --- a/modules/prelude-erlang.el +++ b/modules/prelude-erlang.el @@ -47,6 +47,25 @@ (add-to-list 'load-path wrangler-path) (require 'wrangler))) +(defun erlang-rebar-compile () + (interactive) + (let* ((dir (or (projectile-get-project-root) + (file-name-directory (buffer-file-name)))) + (pref (concat "cd " dir " && ")) + (cmd (cond ((file-exists-p (expand-file-name "rebar" dir)) "./rebar compile") + ((executable-find "rebar") "rebar compile") + ((file-exists-p (expand-file-name "Makefile" dir)) "Makefile") + (t nil)))) + (if cmd + (compilation-start (concat pref cmd)) + (call-interactively 'inferior-erlang-compile)) + )) + +(add-hook 'erlang-mode-hook (lambda () + (make-variable-buffer-local 'projectile-project-root-files) + (setq projectile-project-root-files '("rebar.config" ".git" ".hg" ".bzr" ".projectile")) + (setq erlang-compile-function 'erlang-rebar-compile))) + (provide 'prelude-erlang) ;;; prelude-erlang.el ends here