Update copyright for years from Emacs 21 to present (mainly adding
[bpt/emacs.git] / lispref / hooks.texi
dissimilarity index 61%
index 472b57f..019777f 100644 (file)
-@c -*-texinfo-*-
-@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc. 
-@c See the file elisp.texi for copying conditions.
-@setfilename ../info/hooks
-@node Standard Hooks, Antinews, Standard Keymaps, Top
-@appendix Standard Hooks
-
-The following is a list of hook variables that let you provide
-functions to be called from within Emacs on suitable occasions. 
-
-Most of these variables have names ending with @samp{-hook}.  They are
-@dfn{normal hooks}, run by means of @code{run-hooks}.  The value of such
-a hook is a list of functions.  The recommended way to put a new
-function on such a hook is to call @code{add-hook}.  @xref{Hooks}, for
-more information about using hooks.
-
-The variables whose names end in @samp{-function} have single functions
-as their values.  Usually there is a specific reason why the variable is
-not a normal hook, such as the need to pass arguments to the function.
-(In older Emacs versions, some of these variables had names ending in
-@samp{-hook} even though they were not normal hooks.)
-
-The variables whose names end in @samp{-hooks} or @samp{-functions} have
-lists of functions as their values, but these functions are called in a
-special way (they are passed arguments, or else their values are used).
-
-@c !!! need  xref  to where each hook is documented or else document it
-@c by specifying what is expected, and when it is called relative to
-@c mode initialization.)
-
-@table @code
-@item activate-mark-hook
-@item after-change-function
-@item after-change-functions
-@item after-init-hook
-@item after-insert-file-functions
-@item after-make-frame-hook
-@item auto-fill-function
-@item auto-save-hook
-@item before-change-function
-@item before-change-functions
-@item before-init-hook
-@item before-make-frame-hook
-@item blink-paren-function
-@item c-mode-hook
-@item calendar-load-hook
-@item command-history-hook
-@item comment-indent-function
-@item deactivate-mark-hook
-@item diary-display-hook
-@item diary-hook
-@item dired-mode-hook
-@item disabled-command-hook
-@item edit-picture-hook
-@item electric-buffer-menu-mode-hook
-@item electric-command-history-hook
-@item electric-help-mode-hook
-@item emacs-lisp-mode-hook
-@item find-file-hooks
-@item find-file-not-found-hooks
-@item first-change-hook
-@item fortran-comment-hook
-@item fortran-mode-hook
-@item ftp-setup-write-file-hooks
-@item ftp-write-file-hook
-@item indent-mim-hook
-@item initial-calendar-window-hook
-@item kill-buffer-query-functions
-@item kill-emacs-query-functions
-@item LaTeX-mode-hook
-@item ledit-mode-hook
-@item lisp-indent-function
-@item lisp-interaction-mode-hook
-@item lisp-mode-hook
-@item list-diary-entries-hook
-@item m2-mode-hook
-@item mail-mode-hook
-@item mail-setup-hook
-@item mark-diary-entries-hook
-@item medit-mode-hook
-@item mh-compose-letter-hook
-@item mh-folder-mode-hook
-@item mh-letter-mode-hook
-@item mim-mode-hook
-@item minibuffer-setup-hook
-@item minibuffer-exit-hook
-@item news-mode-hook
-@item news-reply-mode-hook
-@item news-setup-hook
-@item nongregorian-diary-listing-hook
-@item nongregorian-diary-marking-hook
-@item nroff-mode-hook
-@item outline-mode-hook
-@item plain-TeX-mode-hook
-@item post-command-hook
-@item pre-abbrev-expand-hook
-@item pre-command-hook
-@item print-diary-entries-hook
-@item prolog-mode-hook
-@item protect-innocence-hook
-@item rmail-edit-mode-hook
-@item rmail-mode-hook
-@item rmail-summary-mode-hook
-@item scheme-indent-hook
-@item scheme-mode-hook
-@item scribe-mode-hook
-@item shell-mode-hook
-@item shell-set-directory-error-hook
-@item suspend-hook
-@item suspend-resume-hook
-@item temp-buffer-show-function
-@item term-setup-hook
-@item terminal-mode-hook
-@item terminal-mode-break-hook
-@item TeX-mode-hook
-@item text-mode-hook
-@item today-visible-calendar-hook
-@item today-invisible-calendar-hook
-@item vi-mode-hook
-@item view-hook
-@item window-setup-hook
-@item write-contents-hooks
-@item write-file-hooks
-@item write-region-annotation-functions
-@end table
+@c -*-texinfo-*-
+@c This is part of the GNU Emacs Lisp Reference Manual.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 2001, 2002, 2003, 2004,
+@c   2005, 2006, 2007  Free Software Foundation, Inc.
+@c See the file elisp.texi for copying conditions.
+@setfilename ../info/hooks
+@node Standard Hooks, Index, Standard Keymaps, Top
+@appendix Standard Hooks
+@cindex standard hooks
+@cindex hook variables, list of
+
+The following is a list of hook variables that let you provide
+functions to be called from within Emacs on suitable occasions.
+
+Most of these variables have names ending with @samp{-hook}.  They are
+@dfn{normal hooks}, run by means of @code{run-hooks}.  The value of such
+a hook is a list of functions; the functions are called with no
+arguments and their values are completely ignored.  The recommended way
+to put a new function on such a hook is to call @code{add-hook}.
+@xref{Hooks}, for more information about using hooks.
+
+Every major mode defines a mode hook named
+@samp{@var{modename}-mode-hook}.  The major mode command runs this
+normal hook with @code{run-mode-hooks} as the very last thing it does.
+@xref{Mode Hooks}.  Most minor modes have mode hooks too.  Mode hooks
+are omitted in the list below.
+
+The variables whose names end in @samp{-hooks} or @samp{-functions} are
+usually @dfn{abnormal hooks}; their values are lists of functions, but
+these functions are called in a special way (they are passed arguments,
+or their values are used). The variables whose names end in
+@samp{-function} have single functions as their values.
+
+@c We need to xref to where each hook is documented or else document
+@c it here.
+
+@table @code
+@item activate-mark-hook
+@xref{The Mark}.
+
+@item after-change-functions
+@xref{Change Hooks}.
+
+@item after-change-major-mode-hook
+@xref{Mode Hooks}.
+
+@item after-init-hook
+@xref{Init File}.
+
+@item after-insert-file-functions
+@xref{Saving Properties}.
+
+@item after-make-frame-functions
+@xref{Creating Frames}.
+
+@item after-revert-hook
+@xref{Reverting}.
+
+@item after-save-hook
+@xref{Saving Buffers}.
+
+@item auto-fill-function
+@xref{Auto Filling}.
+
+@item auto-save-hook
+@xref{Auto-Saving}.
+
+@item before-change-functions
+@xref{Change Hooks}.
+
+@item before-init-hook
+@xref{Init File}.
+
+@item before-make-frame-hook
+@xref{Creating Frames}.
+
+@item before-revert-hook
+@xref{Reverting}.
+
+@item before-save-hook
+@xref{Saving Buffers}.
+
+@item blink-paren-function
+@xref{Blinking}.
+
+@item buffer-access-fontify-functions
+@xref{Lazy Properties}.
+
+@item calendar-load-hook
+@iftex
+@inforef{Calendar Customizing,, emacs-xtra}.
+@end iftex
+@ifnottex
+@xref{Calendar Customizing,,, emacs}.
+@end ifnottex
+
+
+@item change-major-mode-hook
+@xref{Creating Buffer-Local}.
+
+@item command-line-functions
+@xref{Command-Line Arguments}.
+
+@item comment-indent-function
+@xref{Options for Comments,, Options Controlling Comments, emacs, the
+GNU Emacs Manual}.
+
+@item compilation-finish-functions
+Functions to call when a compilation process finishes.
+
+@item custom-define-hook
+Hook called after defining each customize option.
+
+@item deactivate-mark-hook
+@xref{The Mark}.
+
+@item desktop-after-read-hook
+Normal hook run after a successful @code{desktop-read}.  May be used
+to show a buffer list.  @xref{Saving Emacs Sessions,, Saving Emacs
+Sessions, emacs, the GNU Emacs Manual}.
+
+@item desktop-no-desktop-file-hook
+Normal hook run when @code{desktop-read} can't find a desktop file.
+May be used to show a dired buffer.  @xref{Saving Emacs Sessions,,
+Saving Emacs Sessions, emacs, the GNU Emacs Manual}.
+
+@item desktop-save-hook
+Normal hook run before the desktop is saved in a desktop file.  This
+is useful for truncating history lists, for example.  @xref{Saving
+Emacs Sessions,, Saving Emacs Sessions, emacs, the GNU Emacs Manual}.
+
+@item diary-display-hook
+@iftex
+@inforef{Fancy Diary Display,, emacs-xtra}.
+@end iftex
+@ifnottex
+@xref{Fancy Diary Display,,, emacs}.
+@end ifnottex
+
+@item diary-hook
+List of functions called after the display of the diary.  Can be used
+for appointment notification.
+
+@item disabled-command-function
+@xref{Disabling Commands}.
+
+@item echo-area-clear-hook
+@xref{Echo Area Customization}.
+
+@item emacs-startup-hook
+@xref{Init File}.
+
+@item find-file-hook
+@xref{Visiting Functions}.
+
+@item find-file-not-found-functions
+@xref{Visiting Functions}.
+
+@item first-change-hook
+@xref{Change Hooks}.
+
+@item font-lock-beginning-of-syntax-function
+@xref{Syntactic Font Lock}.
+
+@item font-lock-fontify-buffer-function
+@xref{Other Font Lock Variables}.
+
+@item font-lock-fontify-region-function
+@xref{Other Font Lock Variables}.
+
+@item font-lock-mark-block-function
+@xref{Other Font Lock Variables}.
+
+@item font-lock-syntactic-face-function
+@xref{Syntactic Font Lock}.
+
+@item font-lock-unfontify-buffer-function
+@xref{Other Font Lock Variables}.
+
+@item font-lock-unfontify-region-function
+@xref{Other Font Lock Variables}.
+
+@item initial-calendar-window-hook
+@iftex
+@inforef{Calendar Customizing,, emacs-xtra}.
+@end iftex
+@ifnottex
+@xref{Calendar Customizing,,, emacs}.
+@end ifnottex
+
+@item kbd-macro-termination-hook
+@xref{Keyboard Macros}.
+
+@item kill-buffer-hook
+@xref{Killing Buffers}.
+
+@item kill-buffer-query-functions
+@xref{Killing Buffers}.
+
+@item kill-emacs-hook
+@xref{Killing Emacs}.
+
+@item kill-emacs-query-functions
+@xref{Killing Emacs}.
+
+@item lisp-indent-function
+
+@item list-diary-entries-hook
+@iftex
+@inforef{Fancy Diary Display,, emacs-xtra}.
+@end iftex
+@ifnottex
+@xref{Fancy Diary Display,,, emacs}.
+@end ifnottex
+
+@item mail-setup-hook
+@xref{Mail Mode Misc,, Mail Mode Miscellany, emacs, the GNU Emacs
+Manual}.
+
+@item mark-diary-entries-hook
+@iftex
+@inforef{Fancy Diary Display,, emacs-xtra}.
+@end iftex
+@ifnottex
+@xref{Fancy Diary Display,,, emacs}.
+@end ifnottex
+
+@item menu-bar-update-hook
+@xref{Menu Bar}.
+
+@item minibuffer-setup-hook
+@xref{Minibuffer Misc}.
+
+@item minibuffer-exit-hook
+@xref{Minibuffer Misc}.
+
+@item mouse-position-function
+@xref{Mouse Position}.
+
+@item nongregorian-diary-listing-hook
+@iftex
+@inforef{Hebrew/Islamic Entries,, emacs-xtra}.
+@end iftex
+@ifnottex
+@xref{Hebrew/Islamic Entries,,, emacs}.
+@end ifnottex
+
+@item nongregorian-diary-marking-hook
+@iftex
+@inforef{Hebrew/Islamic Entries,, emacs-xtra}.
+@end iftex
+@ifnottex
+@xref{Hebrew/Islamic Entries,,, emacs}.
+@end ifnottex
+
+@item occur-hook
+
+@item post-command-hook
+@xref{Command Overview}.
+
+@item pre-abbrev-expand-hook
+@xref{Abbrev Expansion}.
+
+@item pre-command-hook
+@xref{Command Overview}.
+
+@item print-diary-entries-hook
+@iftex
+@inforef{Diary Customizing,, emacs-xtra}.
+@end iftex
+@ifnottex
+@xref{Diary Customizing,,, emacs}.
+@end ifnottex
+
+@item redisplay-end-trigger-functions
+@xref{Window Hooks}.
+
+@item scheme-indent-function
+
+@item suspend-hook
+@xref{Suspending Emacs}.
+
+@item suspend-resume-hook
+@xref{Suspending Emacs}.
+
+@item temp-buffer-setup-hook
+@xref{Temporary Displays}.
+
+@item temp-buffer-show-function
+@xref{Temporary Displays}.
+
+@item temp-buffer-show-hook
+@xref{Temporary Displays}.
+
+@item term-setup-hook
+@xref{Terminal-Specific}.
+
+@item today-visible-calendar-hook
+@iftex
+@inforef{Calendar Customizing,, emacs-xtra}.
+@end iftex
+@ifnottex
+@xref{Calendar Customizing,,, emacs}.
+@end ifnottex
+
+@item today-invisible-calendar-hook
+@iftex
+@inforef{Calendar Customizing,, emacs-xtra}.
+@end iftex
+@ifnottex
+@xref{Calendar Customizing,,, emacs}.
+@end ifnottex
+
+@item window-configuration-change-hook
+@xref{Window Hooks}.
+
+@item window-scroll-functions
+@xref{Window Hooks}.
+
+@item window-setup-hook
+@xref{Window Systems}.
+
+@item window-size-change-functions
+@xref{Window Hooks}.
+
+@item write-contents-functions
+@xref{Saving Buffers}.
+
+@item write-file-functions
+@xref{Saving Buffers}.
+
+@item write-region-annotate-functions
+@xref{Saving Properties}.
+@end table
+
+@ignore
+   arch-tag: 55fd0296-d906-4551-b300-979d3846aa88
+@end ignore