From c281e4649dd8e2b39397d947e0d0caf503374db2 Mon Sep 17 00:00:00 2001 From: "Dr. ERDI Gergo" Date: Sat, 12 Sep 2015 18:21:27 +0800 Subject: [PATCH] When pressing backspace at the first column of current indentation, unindent instead of deleting a single character. This restores the old behaviour mentioned in `haskell-indentation-mode`'s docstring. See https://github.com/haskell/haskell-mode/issues/500 --- haskell-indentation.el | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/haskell-indentation.el b/haskell-indentation.el index 57dab0baf..00327899b 100644 --- a/haskell-indentation.el +++ b/haskell-indentation.el @@ -132,8 +132,20 @@ positions are allowed." (let ((keymap (make-sparse-keymap))) (define-key keymap (kbd "RET") 'haskell-indentation-newline-and-indent) (define-key keymap (kbd "") 'haskell-indentation-indent-backwards) + (define-key keymap (kbd "") 'haskell-indentation-unindent-or-delete-backwards) keymap)) +(defun haskell-indentation-at-beginning-of-line () + (and + (not (= (current-column) 0)) + (= (haskell-indentation-current-indentation) (current-column)))) + +(defun haskell-indentation-unindent-or-delete-backwards () + (interactive) + (if (haskell-indentation-at-beginning-of-line) + (haskell-indentation-indent-backwards) + (backward-delete-char 1))) + ;;;###autoload (define-minor-mode haskell-indentation-mode "Haskell indentation mode that deals with the layout rule.