]> code.delx.au - gnu-emacs-elpa/commitdiff
Define new delete-backward bound to backspace.
authorArtur Malabarba <bruce.connor.am@gmail.com>
Thu, 30 Oct 2014 18:56:55 +0000 (18:56 +0000)
committerArtur Malabarba <bruce.connor.am@gmail.com>
Thu, 30 Oct 2014 19:02:01 +0000 (19:02 +0000)
Fixes #25

aggressive-indent.el

index 7d6f519244f3b66f79e9092d6a95df858543a918..17b3a2bcbc6a1632604413cd340969678e1a9e78 100644 (file)
 ;;
 
 ;;; Change Log:
-;; 0.3 - 2014/10/23 - Implement a smarter engine for non-lisp modes.
-;; 0.2 - 2014/10/20 - Reactivate `electric-indent-mode'.
-;; 0.2 - 2014/10/19 - Add variable `aggressive-indent-dont-indent-if', so the user can prevent indentation.
-;; 0.1 - 2014/10/15 - Release.
+;; 0.3.1 - 2014/10/30 - Define new delete-backward bound to backspace.
+;; 0.3   - 2014/10/23 - Implement a smarter engine for non-lisp modes.
+;; 0.2   - 2014/10/20 - Reactivate `electric-indent-mode'.
+;; 0.2   - 2014/10/19 - Add variable `aggressive-indent-dont-indent-if', so the user can prevent indentation.
+;; 0.1   - 2014/10/15 - Release.
 ;;; Code:
 
 (require 'cl-lib)
@@ -321,11 +322,23 @@ Like `aggressive-indent-indent-region-and-on', but wrapped in a
 Assumes that the syntax table is sufficient to find comments."
   (nth 4 (syntax-ppss)))
 
+\f
+;;; Keymap
+(defun delete-backward ()
+  "Either `delete-indentation' or call [backspace]."
+  (interactive)
+  (if (looking-back "^[[:blank:]]+")
+      (call-interactively 'delete-indentation)
+    (let ((mode nil))
+      (execute-kbd-macro [backspace]))))
+
+(define-key mode-map "\C-c\C-q" #'indent-defun)
+(define-key mode-map [backspace] #'delete-backward)
+
 \f
 ;;; Minor modes
 :autoload
-(define-minor-mode mode nil nil " =>"
-  '(("\C-c\C-q" . aggressive-indent-indent-defun))
+(define-minor-mode mode nil nil " =>" nil
   (if mode
       (if (and global-aggressive-indent-mode
                (or (cl-member-if #'derived-mode-p excluded-modes)