mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-01 11:14:55 +00:00
Replace fundamental-mode-hook with change-major-mode-after-body-hook.
* lisp/simple.el (fundamental-mode): * lisp/emacs-lisp/derived.el (define-derived-mode): Revert 2010-04-28 change introducing fundamental-mode-hook. * lisp/subr.el (change-major-mode-after-body-hook): New hook. (run-mode-hooks): Run it. * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Use change-major-mode-before-body-hook.
This commit is contained in:
parent
657d08d30a
commit
15de15c66d
21
etc/NEWS
21
etc/NEWS
@ -1218,15 +1218,22 @@ syntactic rules.
|
||||
|
||||
** frame-local variables cannot be let-bound any more.
|
||||
|
||||
** Major and minor mode changes
|
||||
+++
|
||||
** prog-mode is a new major-mode meant to be the parent of programming mode.
|
||||
The prog-mode-hook it defines can be used to enable features for
|
||||
programming modes. For example:
|
||||
(add-hook 'prog-mode-hook 'flyspell-prog-mode)
|
||||
enables on the fly spell checking for comments and strings for
|
||||
programming modes.
|
||||
*** `prog-mode' is a new major mode from which programming modes
|
||||
should be derived.
|
||||
|
||||
** define-minor-mode accepts a new keyword :variable.
|
||||
**** `prog-mode-hook' can be used to enable features for programming
|
||||
modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable
|
||||
on-the-fly spell checking for comments and strings.
|
||||
|
||||
*** New hook `change-major-mode-after-body-hook', run by
|
||||
`run-mode-hooks' just before any other mode hooks.
|
||||
|
||||
*** Enabled globalized minor modes can be disabled in specific modes,
|
||||
by running (FOO-mode-hook 0) via a mode hook.
|
||||
|
||||
*** `define-minor-mode' accepts a new keyword :variable.
|
||||
|
||||
+++
|
||||
** `delete-file' and `delete-directory' now accept optional arg TRASH.
|
||||
|
@ -1,3 +1,15 @@
|
||||
2011-10-27 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* subr.el (change-major-mode-after-body-hook): New hook.
|
||||
(run-mode-hooks): Run it.
|
||||
|
||||
* emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Use
|
||||
change-major-mode-before-body-hook.
|
||||
|
||||
* simple.el (fundamental-mode):
|
||||
* emacs-lisp/derived.el (define-derived-mode): Revert 2010-04-28
|
||||
change introducing fundamental-mode-hook.
|
||||
|
||||
2011-10-26 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* term/w32-win.el (w32-default-color-map): Declare obsolete. (Bug#9785)
|
||||
|
@ -230,7 +230,7 @@ No problems result if this variable is not bound.
|
||||
; Run the parent.
|
||||
(delay-mode-hooks
|
||||
|
||||
(,(or parent 'fundamental-mode))
|
||||
(,(or parent 'kill-all-local-variables))
|
||||
; Identify the child mode.
|
||||
(setq major-mode (quote ,child))
|
||||
(setq mode-name ,name)
|
||||
|
@ -368,11 +368,13 @@ See `%s' for more information on %s."
|
||||
(progn
|
||||
(add-hook 'after-change-major-mode-hook
|
||||
',MODE-enable-in-buffers)
|
||||
(add-hook 'fundamental-mode-hook ',MODE-enable-in-buffers)
|
||||
(add-hook 'change-major-mode-after-body-hook
|
||||
',MODE-enable-in-buffers)
|
||||
(add-hook 'find-file-hook ',MODE-check-buffers)
|
||||
(add-hook 'change-major-mode-hook ',MODE-cmhh))
|
||||
(remove-hook 'after-change-major-mode-hook ',MODE-enable-in-buffers)
|
||||
(remove-hook 'fundamental-mode-hook ',MODE-enable-in-buffers)
|
||||
(remove-hook 'change-major-mode-after-body-hook
|
||||
',MODE-enable-in-buffers)
|
||||
(remove-hook 'find-file-hook ',MODE-check-buffers)
|
||||
(remove-hook 'change-major-mode-hook ',MODE-cmhh))
|
||||
|
||||
|
@ -349,7 +349,8 @@ location."
|
||||
Other major modes are defined by comparison with this one."
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(run-mode-hooks 'fundamental-mode-hook))
|
||||
(unless delay-mode-hooks
|
||||
(run-hooks 'after-change-major-mode-hook)))
|
||||
|
||||
;; Special major modes to view specially formatted data rather than files.
|
||||
|
||||
|
@ -1530,6 +1530,9 @@ if it is empty or a duplicate."
|
||||
(make-variable-buffer-local 'delayed-mode-hooks)
|
||||
(put 'delay-mode-hooks 'permanent-local t)
|
||||
|
||||
(defvar change-major-mode-after-body-hook nil
|
||||
"Normal hook run in major mode functions, before the mode hooks.")
|
||||
|
||||
(defvar after-change-major-mode-hook nil
|
||||
"Normal hook run at the very end of major mode functions.")
|
||||
|
||||
@ -1546,7 +1549,7 @@ FOO-mode-hook."
|
||||
;; Normal case, just run the hook as before plus any delayed hooks.
|
||||
(setq hooks (nconc (nreverse delayed-mode-hooks) hooks))
|
||||
(setq delayed-mode-hooks nil)
|
||||
(apply 'run-hooks hooks)
|
||||
(apply 'run-hooks (cons 'change-major-mode-after-body-hook hooks))
|
||||
(run-hooks 'after-change-major-mode-hook)))
|
||||
|
||||
(defmacro delay-mode-hooks (&rest body)
|
||||
|
Loading…
Reference in New Issue
Block a user