14.4.1 Simple Types
This section describes all the simple customization types. For
several of these customization types, the customization widget
provides inline completion with C-M-i or M-<TAB>.
sexp- The value may be any Lisp object that can be printed and read back.
You can use
sexp as a fall-back for any option, if you don't
want to take the time to work out a more specific type to use.
integer- The value must be an integer.
number- The value must be a number (floating point or integer).
float- The value must be floating point.
string- The value must be a string. The customization buffer shows the string
without delimiting ‘"’ characters or ‘\’ quotes.
regexp- Like
string except that the string must be a valid regular
expression.
character- The value must be a character code. A character code is actually an
integer, but this type shows the value by inserting the character in the
buffer, rather than by showing the number.
file- The value must be a file name. The widget provides completion.
(file :must-match t)- The value must be a file name for an existing file. The widget
provides completion.
directory- The value must be a directory name. The widget provides completion.
hook- The value must be a list of functions. This customization type is
used for hook variables. You can use the
:options keyword in a
hook variable's defcustom to specify a list of functions
recommended for use in the hook; See Variable Definitions.
symbol- The value must be a symbol. It appears in the customization buffer as
the symbol name. The widget provides completion.
function- The value must be either a lambda expression or a function name. The
widget provides completion for function names.
variable- The value must be a variable name. The widget provides completion.
face- The value must be a symbol which is a face name. The widget provides
completion.
boolean- The value is boolean—either
nil or t. Note that by
using choice and const together (see the next section),
you can specify that the value must be nil or t, but also
specify the text to describe each value in a way that fits the specific
meaning of the alternative.
key-sequence- The value is a key sequence. The customization buffer shows the key
sequence using the same syntax as the kbd function. See Key Sequences.
coding-system- The value must be a coding-system name, and you can do completion with
M-<TAB>.
color- The value must be a valid color name. The widget provides completion
for color names, as well as a sample and a button for selecting a
color name from a list of color names shown in a *Colors*
buffer.