about summary refs log tree commit diff
path: root/init/haskell-setup.el
diff options
context:
space:
mode:
Diffstat (limited to 'init/haskell-setup.el')
-rw-r--r--init/haskell-setup.el34
1 files changed, 34 insertions, 0 deletions
diff --git a/init/haskell-setup.el b/init/haskell-setup.el
new file mode 100644
index 000000000000..bd61013c25b8
--- /dev/null
+++ b/init/haskell-setup.el
@@ -0,0 +1,34 @@
+(require 'haskell-mode)
+
+;; Setup for Haskell mode
+
+(add-hook 'haskell-mode-hook 'interactive-haskell-mode)
+(add-hook 'haskell-mode-hook 'hi2-mode)
+
+;; Bindings
+
+(defun haskell-mode-binding-setup ()
+  (interactive)
+  (define-key haskell-mode-map (kbd "C-c C-l") 'haskell-process-load-or-reload)
+  (define-key haskell-mode-map (kbd "C-c C-c") 'haskell-compile)
+  (define-key haskell-mode-map (kbd "C-r") 'haskell-interactive-bring)
+  (define-key haskell-mode-map (kbd "SPC") 'haskell-mode-contextual-space))
+
+(eval-after-load "haskell-mode"
+  '(haskell-mode-binding-setup))
+
+(eval-after-load "haskell-cabal"
+  '(define-key haskell-cabal-mode-map (kbd "C-c C-c") 'haskell-compile))
+
+;; Settings
+
+(setq haskell-interactive-popup-errors nil
+      haskell-stylish-on-save t
+      haskell-tags-on-save t
+      haskell-process-suggest-remove-import-types t
+      haskell-process-auto-import-loaded-modules t
+      haskell-process-log t
+      haskell-process-type 'ghci
+      haskell-process-show-debug-tips nil)
+
+(provide 'haskell-setup)