Update docs for select-window and buffer-list-update-hook.
[bpt/emacs.git] / doc / lispref / hooks.texi
CommitLineData
b8d4c8d0
GM
1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual.
98bd6b32 3@c Copyright (C) 1990-1993, 1998, 2001-2014 Free Software Foundation, Inc.
b8d4c8d0 4@c See the file elisp.texi for copying conditions.
ecc6530d 5@node Standard Hooks
b8d4c8d0
GM
6@appendix Standard Hooks
7@cindex standard hooks
8@cindex hook variables, list of
9
2064cc6a 10The following is a list of some hook variables that let you provide
b8d4c8d0
GM
11functions to be called from within Emacs on suitable occasions.
12
13Most of these variables have names ending with @samp{-hook}. They are
14@dfn{normal hooks}, run by means of @code{run-hooks}. The value of such
15a hook is a list of functions; the functions are called with no
16arguments and their values are completely ignored. The recommended way
17to put a new function on such a hook is to call @code{add-hook}.
18@xref{Hooks}, for more information about using hooks.
19
d1069532
SM
20The variables whose names end in @samp{-functions} are usually @dfn{abnormal
21hooks} (some old code may also use the deprecated @samp{-hooks} suffix); their
22values are lists of functions, but these functions are called in a special way
23(they are passed arguments, or their return values are used). The variables
24whose names end in @samp{-function} have single functions as their values.
b8d4c8d0 25
2064cc6a
GM
26This is not an exhaustive list, it only covers the more general hooks.
27For example, every major mode defines a hook named
28@samp{@var{modename}-mode-hook}. The major mode command runs this
29normal hook with @code{run-mode-hooks} as the very last thing it does.
30@xref{Mode Hooks}. Most minor modes have mode hooks too.
31
b694135c
RS
32A special feature allows you to specify expressions to evaluate if and
33when a file is loaded (@pxref{Hooks for Loading}). That feature is
34not exactly a hook, but does a similar job.
35
2064cc6a
GM
36@c We need to xref to where each hook is documented or else document it here.
37@c Add vindex for anything not indexed elsewhere.
38@c This list is in alphabetical order, grouped by topic.
39@c TODO It should probably be more thoroughly ordered by topic.
b8d4c8d0
GM
40
41@table @code
42@item activate-mark-hook
2064cc6a 43@itemx deactivate-mark-hook
b8d4c8d0
GM
44@xref{The Mark}.
45
46@item after-change-functions
2064cc6a
GM
47@itemx before-change-functions
48@itemx first-change-hook
b8d4c8d0
GM
49@xref{Change Hooks}.
50
51@item after-change-major-mode-hook
2064cc6a 52@itemx change-major-mode-after-body-hook
b8d4c8d0
GM
53@xref{Mode Hooks}.
54
55@item after-init-hook
2064cc6a
GM
56@itemx before-init-hook
57@itemx emacs-startup-hook
b8d4c8d0
GM
58@xref{Init File}.
59
60@item after-insert-file-functions
2064cc6a
GM
61@itemx write-region-annotate-functions
62@itemx write-region-post-annotation-function
b8d4c8d0
GM
63@xref{Format Conversion}.
64
65@item after-make-frame-functions
2064cc6a 66@itemx before-make-frame-hook
b8d4c8d0
GM
67@xref{Creating Frames}.
68
2064cc6a
GM
69@c Not general enough?
70@ignore
b8d4c8d0 71@item after-revert-hook
2064cc6a
GM
72@itemx before-revert-hook
73@itemx buffer-stale-function
74@itemx revert-buffer-function
75@itemx revert-buffer-insert-file-contents-function
b8d4c8d0 76@xref{Reverting}.
2064cc6a 77@end ignore
b8d4c8d0
GM
78
79@item after-save-hook
2064cc6a
GM
80@itemx before-save-hook
81@itemx write-contents-functions
82@itemx write-file-functions
b8d4c8d0
GM
83@xref{Saving Buffers}.
84
2064cc6a
GM
85@item after-setting-font-hook
86@vindex after-setting-font-hook
87Hook run after a frame's font changes.
b8d4c8d0
GM
88
89@item auto-save-hook
90@xref{Auto-Saving}.
91
66af33fc 92@item before-hack-local-variables-hook
2064cc6a 93@itemx hack-local-variables-hook
66af33fc
EZ
94@xref{File Local Variables}.
95
b8d4c8d0
GM
96@item buffer-access-fontify-functions
97@xref{Lazy Properties}.
98
2064cc6a
GM
99@item buffer-list-update-hook
100@vindex buffer-list-update-hook
2c6053e8 101Hook run when the buffer list changes (@pxref{Buffer List}).
2064cc6a
GM
102
103@item buffer-quit-function
104@vindex buffer-quit-function
105Function to call to ``quit'' the current buffer.
12f381b7 106
b8d4c8d0
GM
107@item change-major-mode-hook
108@xref{Creating Buffer-Local}.
109
110@item command-line-functions
111@xref{Command-Line Arguments}.
112
2064cc6a
GM
113@item delayed-warnings-hook
114@vindex delayed-warnings-hook
115The command loop runs this soon after @code{post-command-hook} (q.v.).
b8d4c8d0 116
f6083c67
BJ
117@item focus-in-hook
118@vindex focus-in-hook
119@itemx focus-out-hook
120@vindex focus-out-hook
121@xref{Input Focus}.
122
0ed8034e 123@item delete-frame-functions
2064cc6a 124@xref{Deleting Frames}.
0ed8034e
EZ
125
126@item delete-terminal-functions
2064cc6a 127@xref{Multiple Terminals}.
e799b4f9 128
5d7c18a8 129@item pop-up-frame-function
2064cc6a
GM
130@itemx split-window-preferred-function
131@xref{Choosing Window Options}.
b8d4c8d0
GM
132
133@item echo-area-clear-hook
134@xref{Echo Area Customization}.
135
b8d4c8d0 136@item find-file-hook
2064cc6a 137@itemx find-file-not-found-functions
b8d4c8d0
GM
138@xref{Visiting Functions}.
139
2064cc6a
GM
140@item font-lock-extend-after-change-region-function
141@xref{Region to Refontify}.
b8d4c8d0 142
2064cc6a
GM
143@item font-lock-extend-region-functions
144@xref{Multiline Font Lock}.
b8d4c8d0
GM
145
146@item font-lock-fontify-buffer-function
2064cc6a
GM
147@itemx font-lock-fontify-region-function
148@itemx font-lock-mark-block-function
149@itemx font-lock-unfontify-buffer-function
150@itemx font-lock-unfontify-region-function
b8d4c8d0
GM
151@xref{Other Font Lock Variables}.
152
2064cc6a
GM
153@item fontification-functions
154@xref{Auto Faces,, Automatic Face Assignment}.
b8d4c8d0 155
2064cc6a
GM
156@item frame-auto-hide-function
157@xref{Quitting Windows}.
b8d4c8d0
GM
158
159@item kill-buffer-hook
2064cc6a 160@itemx kill-buffer-query-functions
b8d4c8d0
GM
161@xref{Killing Buffers}.
162
163@item kill-emacs-hook
2064cc6a 164@itemx kill-emacs-query-functions
b8d4c8d0
GM
165@xref{Killing Emacs}.
166
b8d4c8d0
GM
167@item menu-bar-update-hook
168@xref{Menu Bar}.
169
170@item minibuffer-setup-hook
2064cc6a 171@itemx minibuffer-exit-hook
b8d4c8d0
GM
172@xref{Minibuffer Misc}.
173
2064cc6a
GM
174@item mouse-leave-buffer-hook
175@vindex mouse-leave-buffer-hook
176Hook run when about to switch windows with a mouse command.
b8d4c8d0
GM
177
178@item mouse-position-function
179@xref{Mouse Position}.
180
b8d4c8d0 181@item post-command-hook
2064cc6a 182@itemx pre-command-hook
b8d4c8d0
GM
183@xref{Command Overview}.
184
2064cc6a
GM
185@item post-gc-hook
186@xref{Garbage Collection}.
187
f58b9822
GM
188@item post-self-insert-hook
189@xref{Keymaps and Minor Modes}.
190
2064cc6a 191@ignore
b030b3df 192@item prog-mode-hook
2064cc6a
GM
193@itemx special-mode-hook
194@vindex special-mode-hook
b030b3df 195@xref{Basic Major Modes}.
2064cc6a 196@end ignore
490f1197 197
b8d4c8d0 198@item suspend-hook
2064cc6a
GM
199@itemx suspend-resume-hook
200@itemx suspend-tty-functions
201@itemx resume-tty-functions
b8d4c8d0
GM
202@xref{Suspending Emacs}.
203
2064cc6a
GM
204@item syntax-begin-function
205@itemx syntax-propertize-extend-region-functions
206@itemx syntax-propertize-function
207@itemx font-lock-syntactic-face-function
208@xref{Syntactic Font Lock}. @xref{Syntax Properties}.
b8d4c8d0
GM
209
210@item temp-buffer-setup-hook
2064cc6a
GM
211@itemx temp-buffer-show-function
212@itemx temp-buffer-show-hook
b8d4c8d0
GM
213@xref{Temporary Displays}.
214
98bd6b32 215@item tty-setup-hook
b8d4c8d0
GM
216@xref{Terminal-Specific}.
217
b8d4c8d0 218@item window-configuration-change-hook
2064cc6a
GM
219@itemx window-scroll-functions
220@itemx window-size-change-functions
b8d4c8d0
GM
221@xref{Window Hooks}.
222
223@item window-setup-hook
224@xref{Window Systems}.
225
2064cc6a
GM
226@item window-text-change-functions
227@vindex window-text-change-functions
228Functions to call in redisplay when text in the window might change.
b8d4c8d0 229
b8d4c8d0 230@end table
2064cc6a
GM
231
232@ignore
233Some -hook, -function, -functions from preloaded Lisp or C files that
234I thought did not need to be mentioned here:
235
236Lisp:
237after-load-functions
238auto-coding-functions
239choose-completion-string-functions
240completing-read-function
241completion-annotate-function
242completion-at-point-functions
243completion-in-region-functions
244completion-list-insert-choice-function
72b255c7 245deactivate-current-input-method-function
2064cc6a
GM
246describe-current-input-method-function
247filter-buffer-substring-functions
248font-lock-function
2064cc6a
GM
249menu-bar-select-buffer-function
250read-file-name-function
251replace-re-search-function
252replace-search-function
253yank-undo-function
254
255C hooks:
256kbd-macro-termination-hook
257signal-hook-function
258
259C functions:
260redisplay-end-trigger-functions
261x-lost-selection-functions
262x-sent-selection-functions
263
264C function:
265auto-composition-function
266auto-fill-function
267command-error-function
268compose-chars-after-function
269composition-function-table
270deferred-action-function
271input-method-function
272load-read-function
273load-source-file-function
2064cc6a
GM
274read-buffer-function
275ring-bell-function
276select-safe-coding-system-function
277set-auto-coding-function
278show-help-function
279signal-hook-function
280undo-outer-limit-function
281
282@end ignore