diff --git a/modules/lang/haskell/autoload.el b/modules/lang/haskell/autoload.el index cfcd12be0..ccb5033c8 100644 --- a/modules/lang/haskell/autoload.el +++ b/modules/lang/haskell/autoload.el @@ -12,3 +12,20 @@ (haskell-session-interactive-buffer (haskell-session)))))) (window-buffer window) (error "Failed to display Haskell REPL"))) + +;;;###autoload +(defun +haskell/evil-open-above + "Opens a line above the current mode" + (interactive) + (evil-digit-argument-or-evil-beginning-of-line) + (haskell-indentation-newline-and-indent) + (evil-previous-line) + (haskell-indentation-indent-line) + (evil-append-line nil)) + +;;;###autoload +(defun +haskell/evil-open-below () + "Opens a line below the current mode" + (interactive) + (evil-append-line nil) + (haskell-indentation-newline-and-indent)) diff --git a/modules/lang/haskell/config.el b/modules/lang/haskell/config.el index 515a7c00b..bd0d6661a 100644 --- a/modules/lang/haskell/config.el +++ b/modules/lang/haskell/config.el @@ -32,6 +32,10 @@ (add-to-list 'completion-ignored-extensions ".hi") + (map! :map haskell-mode-map + "o" #'+haskell/evil-open-below + "O" #'+haskell/evil-open-above) + (map! :localleader :map haskell-mode-map ;; this is set to use cabal for dante users and stack for intero users: