You can ask for code to be executed if and when a particular library is
loaded, by calling eval-after-load
.
This function arranges to evaluate form at the end of loading the library library, if and when library is loaded. If library is already loaded, it evaluates form right away.
The library name library must exactly match the argument of
load
. To get the proper results when an installed library is
found by searching load-path
, you should not include any
directory names in library.
An error in form does not undo the load, but does prevent execution of the rest of form.
In general, well-designed Lisp programs should not use this feature.
The clean and modular ways to interact with a Lisp library are (1)
examine and set the library’s variables (those which are meant for
outside use), and (2) call the library’s functions. If you wish to
do (1), you can do it immediately—there is no need to wait for when
the library is loaded. To do (2), you must load the library (preferably
with require
).
But it is ok to use eval-after-load
in your personal customizations
if you don’t feel they must meet the design standards of programs to be
released.
An alist of expressions to evaluate if and when particular libraries are loaded. Each element looks like this:
(filename forms…)
When load
is run and the file-name argument is filename,
the forms in the corresponding element are executed at the end of
loading.
filename must match exactly! Normally filename is the name
of a library, with no directory specified, since that is how load
is normally called. An error in forms does not undo the load, but
does prevent execution of the rest of the forms.
The function load
checks after-load-alist
in order to
implement eval-after-load
.