118 ;; install packages |
118 ;; install packages |
119 (let ((ensure-installed |
119 (let ((ensure-installed |
120 (lambda (name) |
120 (lambda (name) |
121 (unless (package-installed-p name) (package-install name)))) |
121 (unless (package-installed-p name) (package-install name)))) |
122 (packages '(ac-js2 auto-complete exec-path-from-shell expand-region |
122 (packages '(ac-js2 auto-complete exec-path-from-shell expand-region |
123 flymake-easy flymake-hlint ghc ghci-completion haskell-mode |
123 ghc ghci-completion haskell-mode |
124 js2-mode multiple-cursors rainbow-delimiters rainbow-mode |
124 js2-mode multiple-cursors rainbow-delimiters rainbow-mode |
125 skewer-mode solarized-theme visual-regexp yasnippet |
125 skewer-mode solarized-theme visual-regexp yasnippet |
126 zencoding-mode json-mode markdown-mode))) |
126 zencoding-mode json-mode markdown-mode))) |
127 (mapc ensure-installed packages)) |
127 (mapc ensure-installed packages)) |
128 |
128 |
157 |
157 |
158 ;;; yasnippets |
158 ;;; yasnippets |
159 (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets |
159 (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets |
160 (setq-default yas-snippet-dirs '("~/.emacs.d/snippets")) |
160 (setq-default yas-snippet-dirs '("~/.emacs.d/snippets")) |
161 (yas-global-mode t) |
161 (yas-global-mode t) |
|
162 |
|
163 ;;; gradle-mode |
|
164 (add-to-list 'auto-mode-alist '("\\.gradle$'" . groovy-mode)) |
162 |
165 |
163 ;;; js2-mode |
166 ;;; js2-mode |
164 (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode)) |
167 (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode)) |
165 (add-hook 'js2-mode-hook 'ac-js2-mode) |
168 (add-hook 'js2-mode-hook 'ac-js2-mode) |
166 (setq-default ac-js2-evaluate-calls t) |
169 (setq-default ac-js2-evaluate-calls t) |
199 (autoload 'ghc-init "ghc" nil t) |
202 (autoload 'ghc-init "ghc" nil t) |
200 (add-hook |
203 (add-hook |
201 'haskell-mode-hook |
204 'haskell-mode-hook |
202 (lambda () |
205 (lambda () |
203 (ghc-init) |
206 (ghc-init) |
204 (flymake-mode t) |
|
205 (capitalized-words-mode t) |
207 (capitalized-words-mode t) |
206 (turn-on-hi2) |
208 (turn-on-hi2) |
207 (turn-on-haskell-doc-mode) |
|
208 (turn-on-haskell-decl-scan) |
|
209 (imenu-add-menubar-index) |
209 (imenu-add-menubar-index) |
210 (local-set-key (kbd "C-c i") 'haskell-navigate-imports) ; go to imports. prefix to return |
210 (local-set-key (kbd "C-c i") 'haskell-navigate-imports) ; go to imports. prefix to return |
|
211 (local-set-key (kbd "M-p") 'move-line-up) ; need to override default M-p function |
|
212 (local-set-key (kbd "M-n") 'move-line-down) |
|
213 (local-set-key (kbd "C-1") 'ghc-display-errors) |
|
214 (local-set-key (kbd "C-.") 'ghc-goto-next-error) |
|
215 (local-set-key (kbd "C-,") 'ghc-goto-prev-error) |
211 (setq |
216 (setq |
212 ghc-ghc-options '("-isrc") |
217 ghc-ghc-options '("-isrc") |
213 haskell-font-lock-haddock t |
218 haskell-program-name "cabal repl" |
214 haskell-stylish-on-save t |
219 haskell-stylish-on-save t |
215 hi2-layout-offset 4 |
220 hi2-layout-offset 4 |
216 hi2-left-offset 4 |
221 hi2-left-offset 4 |
217 haskell-doc-chop-off-context nil |
|
218 haskell-doc-show-global-types t |
|
219 whitespace-line-column 78))) |
222 whitespace-line-column 78))) |
220 |
223 |
221 ;;; ghci-mode |
224 ;;; ghci-mode |
222 (add-hook 'inferior-haskell-mode-hook 'turn-on-ghci-completion) |
225 (add-hook 'inferior-haskell-mode-hook 'turn-on-ghci-completion) |
223 |
226 |
224 ;;; expand-region |
227 ;;; expand-region |
225 (global-set-key (kbd "C-=") 'er/expand-region) |
228 (global-set-key (kbd "C-=") 'er/expand-region) |
226 |
|
227 ;;; flymake-mode |
|
228 (add-hook |
|
229 'flymake-mode-hook |
|
230 (lambda () |
|
231 (local-set-key (kbd "M-p") 'move-line-up) ; need to override default M-p function |
|
232 (local-set-key (kbd "M-n") 'move-line-down) |
|
233 (local-set-key (kbd "C-1") 'flymake-display-err-menu-for-current-line) |
|
234 (local-set-key (kbd "C-.") 'flymake-goto-next-error) |
|
235 (local-set-key (kbd "C-,") 'flymake-goto-prev-error) |
|
236 )) |
|
237 |
229 |
238 ;;; move-line |
230 ;;; move-line |
239 (global-set-key (kbd "M-p") 'move-line-up) |
231 (global-set-key (kbd "M-p") 'move-line-up) |
240 (global-set-key (kbd "M-n") 'move-line-down) |
232 (global-set-key (kbd "M-n") 'move-line-down) |
241 |
233 |