doomemacs/modules/lang/haskell/+intero.el
Henrik Lissner 253fd77b2a
Fix intero-goto-definition #683 #684
It wasn't working in the first haskell buffer because of a race
condition. Intero was loading too late to register lookup handlers for
haskell-mode (for the first buffer).

By setting it to intero-mode, it is registered in time for intero-mode's
activation.
2018-06-15 22:16:49 +02:00

21 lines
755 B
EmacsLisp

;;; lang/haskell/+intero.el -*- lexical-binding: t; -*-
;;;###if (featurep! +intero)
(def-package! intero
: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)
(if (executable-find "stack")
(intero-mode +1)
(message "Couldn't find stack. Refusing to enable intero-mode."))))
(add-hook 'haskell-mode-hook #'+haskell|init-intero)
:config
(add-hook 'intero-mode-hook #'flycheck-mode)
(set-lookup-handlers! 'intero-mode :definition #'intero-goto-definition))
(def-package! hindent
:hook (haskell-mode . hindent-mode))