From 0d9c56cefc5c05d8732c44f429b6e38299283830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benno=20F=C3=BCnfst=C3=BCck?= Date: Thu, 2 Feb 2017 13:11:57 +0100 Subject: [PATCH] haskell: disable electric indent for cabal-mode --- layers/+lang/haskell/funcs.el | 6 ++++++ layers/+lang/haskell/packages.el | 10 ++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/layers/+lang/haskell/funcs.el b/layers/+lang/haskell/funcs.el index 8e47af8d8..b41e3872e 100644 --- a/layers/+lang/haskell/funcs.el +++ b/layers/+lang/haskell/funcs.el @@ -81,6 +81,12 @@ (evil-define-key '(insert normal) intero-mode-map (kbd "M-.") 'intero-goto-definition)) +(defun spacemacs-haskell//disable-electric-indent () + "Disable electric indent mode if available" + ;; use only internal indentation system from haskell + (if (fboundp 'electric-indent-local-mode) + (electric-indent-local-mode -1))) + ;; Intero functions diff --git a/layers/+lang/haskell/packages.el b/layers/+lang/haskell/packages.el index 30bf17fa0..b68d2b8ef 100644 --- a/layers/+lang/haskell/packages.el +++ b/layers/+lang/haskell/packages.el @@ -92,6 +92,11 @@ (add-hook 'haskell-cabal-mode-hook 'spacemacs//force-haskell-mode-loading) + ;; Haskell cabal files interact badly with electric-indent-mode + ;; note: we cannot add this hook in :config, since haskell-mode might + ;; only be loaded after cabal-mode hooks are already run (see add-hook above) + (add-hook 'haskell-cabal-mode-hook #'spacemacs-haskell//disable-electric-indent) + (setq ;; Use notify.el (if you have it installed) at the end of running ;; Cabal commands or generally things worth notifying. @@ -106,11 +111,8 @@ haskell-stylish-on-save nil)) :config (progn - ;; Haskell main editing mode key bindings. (defun spacemacs/init-haskell-mode () - ;; use only internal indentation system from haskell - (if (fboundp 'electric-indent-local-mode) - (electric-indent-local-mode -1))) + (spacemacs-haskell//disable-electric-indent)) (defun spacemacs/haskell-interactive-bring () "Bring up the interactive mode for this session without