diff --git a/modules/lang/haskell/autoload.el b/modules/lang/haskell/autoload.el new file mode 100644 index 000000000..92cc42afe --- /dev/null +++ b/modules/lang/haskell/autoload.el @@ -0,0 +1,15 @@ +;;; lang/haskell/autoload.el -*- lexical-binding: t; -*- + +;;;###autoload +(defun +haskell-repl-buffer () + "Returns the appropriate Haskell REPL buffer." + (if (featurep! +intero) + (intero-repl-buffer arg) + (haskell-session-interactive-buffer (haskell-session)))) + +;;;###autoload +(defun +haskell/repl (&optional arg) + "Opens a Haskell REPL." + (interactive "P") + (display-buffer (+haskell-repl-buffer))) + diff --git a/modules/lang/haskell/config.el b/modules/lang/haskell/config.el index 9b44c7531..56ccf58fd 100644 --- a/modules/lang/haskell/config.el +++ b/modules/lang/haskell/config.el @@ -11,6 +11,6 @@ :hook (haskell-mode . hindent-mode)) (after! haskell-mode - (set-repl-handler! 'haskell-mode #'switch-to-haskell) + (set-repl-handler! '(haskell-mode haskell-cabal-mode literate-haskell-mode) #'+haskell-repl-buffer) (add-to-list 'completion-ignored-extensions ".hi"))