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.