Next: Group Definitions, Up: Customization
The customization declarations that we will describe in the next few
sections—defcustom
, defgroup
, etc.—all accept
keyword arguments (see Constant Variables) for specifying various
information. This section describes keywords that apply to all types
of customization declarations.
All of these keywords, except :tag
, can be used more than once
in a given item. Each use of the keyword has an independent effect.
The keyword :tag
is an exception because any given item can only
display one name.
:tag
label:group
group:group
in a defgroup
, it makes the new group a subgroup of
group.
If you use this keyword more than once, you can put a single item into
more than one group. Displaying any of those groups will show this
item. Please don't overdo this, since the result would be annoying.
:link
link-dataThere are several alternatives you can use for link-data:
(custom-manual
info-node)
"(emacs)Top"
. The link appears as
‘[Manual]’ in the customization buffer and enters the built-in
Info reader on info-node.
(info-link
info-node)
custom-manual
except that the link appears
in the customization buffer with the Info node name.
(url-link
url)
browse-url-browser-function
.
(emacs-commentary-link
library)
(emacs-library-link
library)
(file-link
file)
find-file
when the user invokes this link.
(function-link
function)
describe-function
when the user invokes this link.
(variable-link
variable)
describe-variable
when the user invokes this link.
(custom-group-link
group)
You can specify the text to use in the customization buffer by adding
:tag
name after the first element of the link-data;
for example, (info-link :tag "foo" "(emacs)Top")
makes a link to
the Emacs manual which appears in the buffer as ‘foo’.
You can use this keyword more than once, to add multiple links.
:load
fileload
, and only if
the file is not already loaded.
:require
feature(require '
feature)
when your saved customizations
set the value of this item. feature should be a symbol.
The most common reason to use :require
is when a variable enables
a feature such as a minor mode, and just setting the variable won't have
any effect unless the code which implements the mode is loaded.
:version
version:package-version '(
package .
version)
:version
.
package should be the official name of the package, as a symbol
(e.g., MH-E
). version should be a string. If the
package package is released as part of Emacs, package and
version should appear in the value of
customize-package-emacs-version-alist
.
Packages distributed as part of Emacs that use the
:package-version
keyword must also update the
customize-package-emacs-version-alist
variable.
This alist provides a mapping for the versions of Emacs that are associated with versions of a package listed in the
:package-version
keyword. Its elements are:(package (pversion . eversion)...)For each package, which is a symbol, there are one or more elements that contain a package version pversion with an associated Emacs version eversion. These versions are strings. For example, the MH-E package updates this alist with the following:
(add-to-list 'customize-package-emacs-version-alist '(MH-E ("6.0" . "22.1") ("6.1" . "22.1") ("7.0" . "22.1") ("7.1" . "22.1") ("7.2" . "22.1") ("7.3" . "22.1") ("7.4" . "22.1") ("8.0" . "22.1")))The value of package needs to be unique and it needs to match the package value appearing in the
:package-version
keyword. Since the user might see the value in an error message, a good choice is the official name of the package, such as MH-E or Gnus.