summaryrefslogtreecommitdiffhomepage
path: root/prog/jao-cabal.el
blob: 699fa1bff73f9035911796e201c8325dd5cdb27d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(require 'jao-dominating-file)

(defun jao-haskell-locate-cabal-file ()
  (jao-locate-dominating-file ".+\\.cabal"))

(eval-after-load 'haskell-mode
  '(add-hook 'haskell-mode-hook
             (lambda ()
               (set (make-local-variable 'compile-command) "cabal build"))))

(defun jao-haskell-cabal-build ()
  (interactive)
  (let ((cabal-file (jao-haskell-locate-cabal-file)))
    (unless cabal-file
      (error "Couldn't find associated cabal file"))
    (let ((default-directory (file-name-directory cabal-file)))
      (call-interactively 'compile))))

;;(eval-after-load 'haskell-mode
;;  '(define-key haskell-mode-map [?\C-c ?c] 'jao-haskell-cabal-build))

(provide 'jao-cabal)