56 'haskell-mode-hook |
50 'haskell-mode-hook |
57 (lambda () |
51 (lambda () |
58 (imenu-add-menubar-index) |
52 (imenu-add-menubar-index) |
59 (flycheck-mode) |
53 (flycheck-mode) |
60 (flycheck-disable-checker `haskell-ghc) |
54 (flycheck-disable-checker `haskell-ghc) |
61 (turn-on-hi2) |
55 (haskell-indentation-mode t) |
62 (interactive-haskell-mode))) |
56 (subword-mode) |
|
57 (interactive-haskell-mode t))) |
63 |
58 |
64 (custom-set-variables |
59 (custom-set-variables |
65 '(capitalized-words-mode t) |
60 '(capitalized-words-mode t) |
66 '(haskell-stylish-on-save t) |
61 '(haskell-stylish-on-save t) |
67 |
62 |
68 '(hi2-layout-offset 4) |
63 '(haskell-indentation-layout-offset 4) |
69 '(hi2-left-offset 4) |
64 '(haskell-indentation-left-offset 4) |
70 |
65 |
71 '(haskell-process-type 'cabal-repl) |
66 '(haskell-process-type 'cabal-repl) |
72 '(haskell-process-args-cabal-repl '("--ghc-option=-ferror-spans" "--with-ghc=ghci-ng")) |
67 ;; '(haskell-process-args-cabal-repl '("--ghc-option=-ferror-spans" "--with-ghc=ghci-ng")) |
73 '(haskell-process-path-ghci "ghci-ng") |
68 ;; '(haskell-process-path-ghci "ghci-ng") |
74 '(haskell-process-args-ghci "-ferror-spans") |
69 ;; '(haskell-process-args-ghci "-ferror-spans") |
75 '(haskell-process-suggest-remove-import-lines t) |
70 '(haskell-process-suggest-remove-import-lines t) |
76 '(haskell-process-auto-import-loaded-modules t) |
71 '(haskell-process-auto-import-loaded-modules t) |
77 '(haskell-process-log t) |
72 '(haskell-process-log t) |
78 '(haskell-process-reload-with-fbytecode nil) |
73 '(haskell-process-reload-with-fbytecode nil) |
79 '(haskell-process-use-presentation-mode t) |
74 '(haskell-process-use-presentation-mode t) |
94 ;; haskell-interactive-mode keybindings |
89 ;; haskell-interactive-mode keybindings |
95 (define-key interactive-haskell-mode-map (kbd "C-c C-l") 'haskell-process-load-or-reload) |
90 (define-key interactive-haskell-mode-map (kbd "C-c C-l") 'haskell-process-load-or-reload) |
96 (define-key interactive-haskell-mode-map (kbd "M-,") 'haskell-who-calls) |
91 (define-key interactive-haskell-mode-map (kbd "M-,") 'haskell-who-calls) |
97 (define-key interactive-haskell-mode-map (kbd "M-.") 'haskell-mode-goto-loc) |
92 (define-key interactive-haskell-mode-map (kbd "M-.") 'haskell-mode-goto-loc) |
98 (define-key interactive-haskell-mode-map (kbd "C-?") 'haskell-mode-find-uses) |
93 (define-key interactive-haskell-mode-map (kbd "C-?") 'haskell-mode-find-uses) |
|
94 (define-key interactive-haskell-mode-map (kbd "C-c C-c") 'haskell-process-cabal-build) |
|
95 (define-key interactive-haskell-mode-map (kbd "C-c C-t") 'haskell-mode-show-type-at) |
99 (define-key interactive-haskell-mode-map (kbd "C-`") 'haskell-interactive-bring) |
96 (define-key interactive-haskell-mode-map (kbd "C-`") 'haskell-interactive-bring) |
100 (define-key interactive-haskell-mode-map (kbd "C-c C-k") 'haskell-interactive-mode-clear) |
97 (define-key interactive-haskell-mode-map (kbd "C-c C-k") 'haskell-process-clear) |
101 (define-key interactive-haskell-mode-map (kbd "C-c C-c") 'haskell-process-cabal-build) |
|
102 (define-key interactive-haskell-mode-map (kbd "C-c c") 'haskell-process-cabal) |
98 (define-key interactive-haskell-mode-map (kbd "C-c c") 'haskell-process-cabal) |
103 (define-key interactive-haskell-mode-map (kbd "C-c C-t") 'haskell-mode-show-type-at) |
|
104 |
99 |
105 (define-key haskell-interactive-mode-map (kbd "C-c C-i") 'haskell-process-do-info) |
100 (define-key haskell-interactive-mode-map (kbd "C-c C-i") 'haskell-process-do-info) |
106 (define-key haskell-interactive-mode-map (kbd "C-<left>") 'haskell-interactive-mode-error-backward) |
101 (define-key haskell-interactive-mode-map (kbd "C-<left>") 'haskell-interactive-mode-error-backward) |
107 (define-key haskell-interactive-mode-map (kbd "C-<right>") 'haskell-interactive-mode-error-forward) |
102 (define-key haskell-interactive-mode-map (kbd "C-<right>") 'haskell-interactive-mode-error-forward) |
108 (define-key haskell-interactive-mode-map (kbd "C-c c") 'haskell-process-cabal) |
103 (define-key haskell-interactive-mode-map (kbd "C-c c") 'haskell-process-cabal) |
109 |
104 |
110 (define-key haskell-mode-map (kbd "C-c C-l") 'haskell-process-load-or-reload) |
105 (define-key haskell-mode-map (kbd "C-c C-l") 'haskell-process-load-or-reload) |
111 (define-key haskell-mode-map (kbd "C-`") 'haskell-interactive-bring) |
106 (define-key haskell-mode-map (kbd "C-`") 'haskell-interactive-bring) |
112 (define-key haskell-mode-map (kbd "C-c C-t") 'haskell-process-do-type) |
107 (define-key haskell-mode-map (kbd "C-c C-t") 'haskell-process-do-type) |
|
108 (define-key haskell-mode-map (kbd "C-c i") 'haskell-navigate-imports) |
113 (define-key haskell-mode-map (kbd "C-c C-i") 'haskell-process-do-info) |
109 (define-key haskell-mode-map (kbd "C-c C-i") 'haskell-process-do-info) |
114 (define-key haskell-mode-map (kbd "C-c C-c") 'haskell-process-cabal-build) |
110 (define-key haskell-mode-map (kbd "C-c C-c") 'haskell-process-cabal-build) |
115 (define-key haskell-mode-map (kbd "C-c C-d") 'haskell-describe) |
111 (define-key haskell-mode-map (kbd "C-c C-d") 'haskell-describe) |
116 (define-key haskell-mode-map (kbd "C-c C-k") 'haskell-interactive-mode-clear) |
112 (define-key haskell-mode-map (kbd "C-c C-k") 'haskell-process-clear) |
117 (define-key haskell-mode-map (kbd "C-c c") 'haskell-process-cabal) |
113 (define-key haskell-mode-map (kbd "C-c c") 'haskell-process-cabal) |
118 (define-key haskell-mode-map (kbd "SPC") 'haskell-mode-contextual-space) |
114 (define-key haskell-mode-map (kbd "SPC") 'haskell-mode-contextual-space) |
119 |
115 |
120 (define-key haskell-cabal-mode-map (kbd "C-`") 'haskell-interactive-bring) |
116 (define-key haskell-cabal-mode-map (kbd "C-`") 'haskell-interactive-bring) |
121 (define-key haskell-cabal-mode-map (kbd "C-c C-k") 'haskell-interactive-mode-clear) |
117 (define-key haskell-cabal-mode-map (kbd "C-c C-k") 'haskell-process-clear) |
122 (define-key haskell-cabal-mode-map (kbd "C-c C-c") 'haskell-process-cabal-build) |
118 (define-key haskell-cabal-mode-map (kbd "C-c C-c") 'haskell-process-cabal-build) |
123 (define-key haskell-cabal-mode-map (kbd "C-c c") 'haskell-process-cabal) |
119 (define-key haskell-cabal-mode-map (kbd "C-c c") 'haskell-process-cabal) |
124 |
120 |
125 (message "Loading haskell-init...done") |
121 (message "Loading haskell-init...done") |
126 (provide 'haskell-init) |
122 (provide 'haskell-init) |
127 |
|
128 |
|
129 ;;;; Old haskell stuff |
|
130 ;; ;;; haskell-mode |
|
131 ;; (autoload 'ghc-init "ghc" nil t) |
|
132 ;; (add-hook |
|
133 ;; 'haskell-mode-hook |
|
134 ;; (lambda () |
|
135 ;; (ghc-init) |
|
136 ;; (capitalized-words-mode t) |
|
137 ;; (turn-on-hi2) |
|
138 ;; (imenu-add-menubar-index) |
|
139 ;; (interactive-haskell-mode) |
|
140 ;; (local-set-key (kbd "C-c i") 'haskell-navigate-imports) ; go to imports. prefix to return |
|
141 ;; (local-set-key (kbd "M-p") 'move-line-up) ; need to override default M-p function |
|
142 ;; (local-set-key (kbd "M-n") 'move-line-down) |
|
143 ;; (local-set-key (kbd "C-1") 'ghc-display-errors) |
|
144 ;; (local-set-key (kbd "C-.") 'ghc-goto-next-error) |
|
145 ;; (local-set-key (kbd "C-,") 'ghc-goto-prev-error) |
|
146 |
|
147 ;; (define-key haskell-mode-map (kbd "C-c C-l") 'haskell-process-load-or-reload) |
|
148 ;; (define-key haskell-mode-map (kbd "C-`") 'haskell-interactive-bring) |
|
149 ;; (define-key haskell-mode-map (kbd "C-c C-t") 'haskell-process-do-type) |
|
150 ;; (define-key haskell-mode-map (kbd "C-c C-i") 'haskell-process-do-info) |
|
151 ;; (define-key haskell-mode-map (kbd "C-c C-c") 'haskell-process-cabal-build) |
|
152 ;; (define-key haskell-mode-map (kbd "C-c C-k") 'haskell-interactive-mode-clear) |
|
153 ;; (define-key haskell-mode-map (kbd "C-c c") 'haskell-process-cabal) |
|
154 ;; (define-key haskell-mode-map (kbd "SPC") 'haskell-mode-contextual-space) |
|
155 |
|
156 ;; (setq |
|
157 ;; ghc-ghc-options '("-isrc") |
|
158 ;; haskell-program-name "cabal repl" |
|
159 ;; haskell-stylish-on-save t |
|
160 ;; hi2-layout-offset 4 |
|
161 ;; hi2-left-offset 4 |
|
162 ;; whitespace-line-column 78 |
|
163 ;; ;; haskell-process-type 'cabal-repl |
|
164 ;; haskell-process-suggest-remove-import-lines t |
|
165 ;; haskell-process-auto-import-loaded-modules t |
|
166 ;; haskell-process-log t |
|
167 ;; ))) |
|
168 |
|
169 ;; ;;; ghci-mode |
|
170 ;; (add-hook 'inferior-haskell-mode-hook 'turn-on-ghci-completion) |
|