1 ;; ~/.emacs.d/elisp/haskell-init.el |
1 ;; ~/.emacs.d/elisp/haskell-init.el |
2 ;; Luke Hoersten <[email protected]> |
2 ;; Luke Hoersten <[email protected]> |
3 |
3 |
|
4 ;;; Code: |
|
5 |
4 ;; Require packages |
6 ;; Require packages |
5 (require 'package-require) |
7 (require 'package-require) |
6 (package-require '(haskell-mode yasnippet haskell-snippets flycheck)) |
8 (package-require '(haskell-mode ghc yasnippet haskell-snippets flycheck company company-ghc)) |
7 |
9 |
8 (add-to-list 'load-path "~/.emacs.d/elisp/stack-mode") |
10 ;; flycheck-haskell |
9 |
|
10 ;; Load haskell-mode from source |
|
11 ;; (add-to-list 'load-path "~/Code/elisp/haskell-mode/") |
|
12 ;; (require 'haskell-mode-autoloads) |
|
13 |
|
14 ;; company-mode stack-ide integration |
|
15 (add-to-list 'load-path "~/Code/elisp/company-stack-ide/") |
|
16 (require 'company-stack-ide) |
|
17 (add-to-list 'company-backends 'company-stack-ide) |
|
18 (add-hook 'stack-mode 'company-mode) |
|
19 |
11 |
20 (require 'haskell) |
12 (require 'haskell) |
21 (require 'haskell-mode) |
13 (require 'haskell-mode) |
22 (require 'stack-mode) |
|
23 (require 'haskell-interactive-mode) |
14 (require 'haskell-interactive-mode) |
24 (require 'haskell-snippets) |
15 (require 'haskell-snippets) |
|
16 (require 'company) |
|
17 |
|
18 (add-to-list 'company-backends 'company-ghc) |
|
19 (autoload 'ghc-init "ghc" nil t) |
|
20 (autoload 'ghc-debug "ghc" nil t) |
|
21 (add-hook 'haskell-mode-hook (lambda () (ghc-init))) |
|
22 ;; (add-hook 'flycheck-mode-hook #'flycheck-haskell-setup) |
25 |
23 |
26 (defun haskell-who-calls (&optional prompt) |
24 (defun haskell-who-calls (&optional prompt) |
27 "Grep the codebase to see who uses the symbol at point." |
25 "Grep the codebase to see who uses the symbol at point." |
28 (interactive "P") |
26 (interactive "P") |
29 (let ((sym (if prompt |
27 (let ((sym (if prompt |
43 ;;; haskell-mode |
41 ;;; haskell-mode |
44 (add-hook |
42 (add-hook |
45 'haskell-mode-hook |
43 'haskell-mode-hook |
46 (lambda () |
44 (lambda () |
47 (flycheck-mode t) |
45 (flycheck-mode t) |
48 (flycheck-disable-checker 'haskell-ghc) |
|
49 (flycheck-disable-checker 'haskell-stack-ghc) |
|
50 (flycheck-clear t) |
|
51 (imenu-add-menubar-index) |
46 (imenu-add-menubar-index) |
52 (haskell-indentation-mode t) |
47 (haskell-indentation-mode t) |
53 (projectile-mode t) |
48 (projectile-mode t) |
54 (stack-mode t) |
|
55 (subword-mode t) |
49 (subword-mode t) |
56 (capitalized-words-mode t) |
50 (capitalized-words-mode t) |
57 ;; (interactive-haskell-mode t) |
51 ;; (interactive-haskell-mode t) |
58 |
52 |
59 (setq |
53 (setq |