From 18c50cbe1c5dea05b9f394be44babc3010fde890 Mon Sep 17 00:00:00 2001 From: nam3less Date: Sat, 11 Jan 2020 00:42:18 +0100 Subject: [PATCH] Added evil integration to haskell-mode Overwrite the 'o' and 'O' normal mode commands to correctly indent new lines. Code was adapted from: https://github.com/haskell/haskell-mode/issues/1265 --- modules/lang/haskell/autoload.el | 17 +++++++++++++++++ modules/lang/haskell/config.el | 4 ++++ 2 files changed, 21 insertions(+) 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: