[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs-24 r116919: Fix electric-pair-delete-adjacent-pairs
From: |
João Távora |
Subject: |
[Emacs-diffs] emacs-24 r116919: Fix electric-pair-delete-adjacent-pairs in modes binding backspace. |
Date: |
Sun, 06 Apr 2014 23:37:22 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 116919
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/16981
committer: João Távora <address@hidden>
branch nick: emacs-24
timestamp: Mon 2014-04-07 00:37:17 +0100
message:
Fix electric-pair-delete-adjacent-pairs in modes binding backspace.
* lisp/elec-pair.el (electric-pair-backward-delete-char): Delete.
(electric-pair-backward-delete-char-untabify): Delete.
(electric-pair-mode-map): Bind backspace to a menu item filtering
a new `electric-pair-delete-pair' command.
(electric-pair-delete-pair): New command.
modified:
lisp/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1432
lisp/elec-pair.el elecpair.el-20131227124533-yaq8recs0j0ggt67-1
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2014-04-06 23:23:45 +0000
+++ b/lisp/ChangeLog 2014-04-06 23:37:17 +0000
@@ -1,5 +1,15 @@
2014-04-06 João Távora <address@hidden>
+ Fix `electric-pair-delete-adjacent-pairs' in modes binding
+ backspace. (bug#16981)
+ * elec-pair.el (electric-pair-backward-delete-char): Delete.
+ (electric-pair-backward-delete-char-untabify): Delete.
+ (electric-pair-mode-map): Bind backspace to a menu item filtering
+ a new `electric-pair-delete-pair' command.
+ (electric-pair-delete-pair): New command.
+
+2014-04-06 João Távora <address@hidden>
+
* progmodes/python.el (python-electric-pair-string-delimiter): Fix
triple-quoting electricity. (Bug#17192)
=== modified file 'lisp/elec-pair.el'
--- a/lisp/elec-pair.el 2014-04-06 23:09:19 +0000
+++ b/lisp/elec-pair.el 2014-04-06 23:37:17 +0000
@@ -166,36 +166,6 @@
quotes or comments. If lookup fails here, `electric-pair-text-pairs' will
be considered.")
-(defun electric-pair-backward-delete-char (n &optional killflag untabify)
- "Delete characters backward, and maybe also two adjacent paired delimiters.
-
-Remaining behavior is given by `backward-delete-char' or, if UNTABIFY is
-non-nil, `backward-delete-char-untabify'."
- (interactive "*p\nP")
- (let* ((prev (char-before))
- (next (char-after))
- (syntax-info (and prev
- (electric-pair-syntax-info prev)))
- (syntax (car syntax-info))
- (pair (cadr syntax-info)))
- (when (and next pair
- (if (functionp electric-pair-delete-adjacent-pairs)
- (funcall electric-pair-delete-adjacent-pairs)
- electric-pair-delete-adjacent-pairs)
- (memq syntax '(?\( ?\" ?\$))
- (eq pair next))
- (delete-char 1 killflag))
- (if untabify
- (backward-delete-char-untabify n killflag)
- (backward-delete-char n killflag))))
-
-(defun electric-pair-backward-delete-char-untabify (n &optional killflag)
- "Delete characters backward, and maybe also two adjacent paired delimiters.
-
-Remaining behavior is given by `backward-delete-char-untabify'."
- (interactive "*p\nP")
- (electric-pair-backward-delete-char n killflag t))
-
(defun electric-pair-conservative-inhibit (char)
(or
;; I find it more often preferable not to pair when the
@@ -530,14 +500,34 @@
(memq (car (electric-pair-syntax-info last-command-event))
'(?\( ?\) ?\" ?\$))))
+(defun electric-pair-delete-pair (arg &optional killp)
+ "When between adjacent paired delimiters, delete both of them.
+ARG and KILLP are passed directly to
+`backward-delete-char-untabify', which see."
+ (interactive "*p\nP")
+ (delete-char 1)
+ (backward-delete-char-untabify arg killp))
+
(defvar electric-pair-mode-map
(let ((map (make-sparse-keymap)))
- (define-key map [remap backward-delete-char-untabify]
- 'electric-pair-backward-delete-char-untabify)
- (define-key map [remap backward-delete-char]
- 'electric-pair-backward-delete-char)
- (define-key map [remap delete-backward-char]
- 'electric-pair-backward-delete-char)
+ (define-key map "\177"
+ `(menu-item
+ "" electric-pair-delete-pair
+ :filter
+ ,(lambda (cmd)
+ (let* ((prev (char-before))
+ (next (char-after))
+ (syntax-info (and prev
+ (electric-pair-syntax-info prev)))
+ (syntax (car syntax-info))
+ (pair (cadr syntax-info)))
+ (and next pair
+ (memq syntax '(?\( ?\" ?\$))
+ (eq pair next)
+ (if (functionp electric-pair-delete-adjacent-pairs)
+ (funcall electric-pair-delete-adjacent-pairs)
+ electric-pair-delete-adjacent-pairs)
+ cmd)))))
map)
"Keymap used by `electric-pair-mode'.")
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs-24 r116919: Fix electric-pair-delete-adjacent-pairs in modes binding backspace.,
João Távora <=