* lisp/electric.el (electric-indent-mode): Fix last change (too optimistic).

This commit is contained in:
Stefan Monnier 2011-11-20 01:29:57 -05:00
parent a5bb9bd3a8
commit 24f3d7b94b
2 changed files with 19 additions and 9 deletions

View file

@ -1,5 +1,7 @@
2011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
* electric.el (electric-indent-mode): Fix last change (too optimistic).
* emacs-lisp/bytecomp.el: Silence obsolete warnings more reliably.
(byte-compile-global-not-obsolete-vars): New var.
(byte-compile-check-variable, byte-compile-make-obsolete-variable):

View file

@ -260,15 +260,23 @@ reindentation is triggered whenever you insert a character listed
in `electric-indent-chars'."
:global t
:group 'electricity
(if electric-indent-mode
(add-hook 'post-self-insert-hook
#'electric-indent-post-self-insert-function
;; post-self-insert-hooks interact in non-trivial ways.
;; It turns out that electric-indent-mode generally works
;; better last.
'append)
(remove-hook 'post-self-insert-hook
#'electric-indent-post-self-insert-function)))
(if (not electric-indent-mode)
(remove-hook 'post-self-insert-hook
#'electric-indent-post-self-insert-function)
;; post-self-insert-hooks interact in non-trivial ways.
;; It turns out that electric-indent-mode generally works better if run
;; late, but still before blink-paren.
(add-hook 'post-self-insert-hook
#'electric-indent-post-self-insert-function
'append)
;; FIXME: Ugly!
(let ((bp (memq #'blink-paren-post-self-insert-function
(default-value 'post-self-insert-hook))))
(when (memq #'electric-indent-post-self-insert-function bp)
(setcar bp #'electric-indent-post-self-insert-function)
(setcdr bp (cons #'blink-paren-post-self-insert-function
(delq #'electric-indent-post-self-insert-function
(cdr bp))))))))
;; Electric pairing.