* lisp/electric.el (electric-pair-inhibit-predicate): New var.
(electric-pair-post-self-insert-function): Use it. (electric-pair-default-inhibit): New function, extracted from electric-pair-post-self-insert-function. Fixes: debbugs:14000
This commit is contained in:
parent
925d7ec008
commit
15c579f08c
2 changed files with 28 additions and 6 deletions
|
@ -1,3 +1,10 @@
|
|||
2013-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* electric.el (electric-pair-inhibit-predicate): New var (bug#14000).
|
||||
(electric-pair-post-self-insert-function): Use it.
|
||||
(electric-pair-default-inhibit): New function, extracted from
|
||||
electric-pair-post-self-insert-function.
|
||||
|
||||
2013-03-31 Roland Winkler <winkler@gnu.org>
|
||||
|
||||
* emacs-lisp/crm.el (completing-read-multiple): Doc fix.
|
||||
|
|
|
@ -302,6 +302,26 @@ This can be convenient for people who find it easier to hit ) than C-f."
|
|||
:version "24.1"
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom electric-pair-inhibit-predicate
|
||||
#'electric-pair-default-inhibit
|
||||
"Predicate to prevent insertion of a matching pair.
|
||||
The function is called with a single char (the opening char just inserted).
|
||||
If it returns non-nil, then `electric-pair-mode' will not insert a matching
|
||||
closer."
|
||||
:type '(choice
|
||||
(const :tag "Default" electric-pair-default-inhibit)
|
||||
(const :tag "Always pair" ignore)
|
||||
function))
|
||||
|
||||
(defun electric-pair-default-inhibit (char)
|
||||
(or
|
||||
;; I find it more often preferable not to pair when the
|
||||
;; same char is next.
|
||||
(eq char (char-after))
|
||||
(eq char (char-before (1- (point))))
|
||||
;; I also find it often preferable not to pair next to a word.
|
||||
(eq (char-syntax (following-char)) ?w)))
|
||||
|
||||
(defun electric-pair-syntax (command-event)
|
||||
(and electric-pair-mode
|
||||
(let ((x (assq command-event electric-pair-pairs)))
|
||||
|
@ -351,12 +371,7 @@ This can be convenient for people who find it easier to hit ) than C-f."
|
|||
;; Insert matching pair.
|
||||
((not (or (not (memq syntax `(?\( ?\" ?\$)))
|
||||
overwrite-mode
|
||||
;; I find it more often preferable not to pair when the
|
||||
;; same char is next.
|
||||
(eq last-command-event (char-after))
|
||||
(eq last-command-event (char-before (1- (point))))
|
||||
;; I also find it often preferable not to pair next to a word.
|
||||
(eq (char-syntax (following-char)) ?w)))
|
||||
(funcall electric-pair-inhibit-predicate last-command-event)))
|
||||
(save-excursion (insert closer))))))
|
||||
|
||||
(defun electric-pair-will-use-region ()
|
||||
|
|
Loading…
Add table
Reference in a new issue