2017-06-08 11:47:56 +02:00
|
|
|
;;; lang/haskell/config.el -*- lexical-binding: t; -*-
|
2016-03-29 01:06:37 -04:00
|
|
|
|
2019-10-19 15:25:29 -04:00
|
|
|
(after! projectile
|
|
|
|
(add-to-list 'projectile-project-root-files "stack.yaml"))
|
|
|
|
|
2019-12-08 16:13:12 -05:00
|
|
|
;; TODO ghcide?
|
|
|
|
(cond ((featurep! +intero) (load! "+intero")) ; DEPRECATED
|
2019-02-23 03:20:45 +11:00
|
|
|
((featurep! +dante) (load! "+dante"))
|
|
|
|
((featurep! +lsp) (load! "+lsp")))
|
2017-10-03 00:52:16 +02:00
|
|
|
|
2019-03-04 04:55:31 -05:00
|
|
|
|
2017-10-03 00:52:16 +02:00
|
|
|
;;
|
2018-09-07 19:36:16 -04:00
|
|
|
;; Common packages
|
2017-10-03 00:52:16 +02:00
|
|
|
|
2018-07-18 08:50:55 +02:00
|
|
|
(after! haskell-mode
|
2018-07-19 19:03:05 +02:00
|
|
|
(setq haskell-process-suggest-remove-import-lines t ; warnings for redundant imports etc
|
2019-03-04 04:55:31 -05:00
|
|
|
haskell-process-auto-import-loaded-modules t
|
2020-01-14 03:04:26 -05:00
|
|
|
haskell-process-show-overlays (not (featurep! :checkers syntax))) ; redundant with flycheck
|
2019-03-04 04:55:31 -05:00
|
|
|
|
2019-07-23 17:30:32 +02:00
|
|
|
(set-lookup-handlers! 'haskell-mode
|
|
|
|
:definition #'haskell-mode-jump-to-def-or-tag)
|
|
|
|
(set-file-template! 'haskell-mode
|
|
|
|
:trigger #'haskell-auto-insert-module-template
|
|
|
|
:project t)
|
2019-10-23 21:39:19 -04:00
|
|
|
(set-repl-handler!
|
|
|
|
'(haskell-mode haskell-cabal-mode literate-haskell-mode)
|
|
|
|
#'+haskell/open-repl :persist t)
|
2018-07-19 11:04:17 +02:00
|
|
|
|
2019-03-04 04:55:31 -05:00
|
|
|
(add-hook! 'haskell-mode-hook
|
2019-07-26 19:57:13 +02:00
|
|
|
#'haskell-collapse-mode ; support folding haskell code blocks
|
|
|
|
#'interactive-haskell-mode)
|
2019-03-04 04:55:31 -05:00
|
|
|
|
2018-07-19 11:04:17 +02:00
|
|
|
(add-to-list 'completion-ignored-extensions ".hi")
|
|
|
|
|
2020-01-11 00:42:18 +01:00
|
|
|
(map! :map haskell-mode-map
|
2020-01-11 01:08:28 +01:00
|
|
|
:n "o" #'+haskell/evil-open-below
|
|
|
|
:n "O" #'+haskell/evil-open-above)
|
2020-01-11 00:42:18 +01:00
|
|
|
|
2018-12-23 23:54:27 -05:00
|
|
|
(map! :localleader
|
|
|
|
:map haskell-mode-map
|
2018-07-18 09:11:48 +02:00
|
|
|
;; this is set to use cabal for dante users and stack for intero users:
|
2018-12-23 23:54:27 -05:00
|
|
|
"b" #'haskell-process-cabal-build
|
|
|
|
"c" #'haskell-cabal-visit-file
|
|
|
|
"h" #'haskell-hide-toggle
|
|
|
|
"H" #'haskell-hide-toggle-all))
|