2017-08-08 19:14:58 +02:00
|
|
|
;;; lang/haskell/+intero.el -*- lexical-binding: t; -*-
|
2017-12-10 16:57:51 -05:00
|
|
|
;;;###if (featurep! +intero)
|
2017-08-08 19:14:58 +02:00
|
|
|
|
|
|
|
(def-package! intero
|
2018-05-14 20:55:55 +02:00
|
|
|
:commands intero-mode
|
|
|
|
:init
|
|
|
|
(defun +haskell|init-intero ()
|
|
|
|
"Initializes `intero-mode' in haskell-mode, unless stack isn't installed.
|
|
|
|
This is necessary because `intero-mode' doesn't do its own error checks."
|
|
|
|
(when (derived-mode-p 'haskell-mode)
|
2018-07-03 02:30:56 +02:00
|
|
|
(if (executable-find "stack")
|
2018-05-14 20:55:55 +02:00
|
|
|
(intero-mode +1)
|
2018-07-03 02:30:56 +02:00
|
|
|
(message "Couldn't find stack. Refusing to enable intero-mode."))))
|
2018-02-14 07:44:49 -05:00
|
|
|
(add-hook 'haskell-mode-hook #'+haskell|init-intero)
|
2018-05-14 20:55:55 +02:00
|
|
|
:config
|
2018-07-17 23:47:57 +02:00
|
|
|
(set-lookup-handlers! 'intero-mode :definition #'intero-goto-definition)
|
|
|
|
(when (featurep! :feature syntax-checker)
|
|
|
|
(flycheck-add-next-checker 'intero '(warning . haskell-hlint))))
|