diff lispref/customize.texi @ 22138:d4ac295a98b3

*** empty log message ***
author Richard M. Stallman <rms@gnu.org>
date Tue, 19 May 1998 03:45:57 +0000
parents 90da2489c498
children 40089afa2b1d
line wrap: on
line diff
--- a/lispref/customize.texi	Tue May 19 03:41:25 1998 +0000
+++ b/lispref/customize.texi	Tue May 19 03:45:57 1998 +0000
@@ -31,6 +31,10 @@
 display one name.
 
 @table @code
+@item :tag @var{name}
+Use @var{name}, a string, instead of the item's name, to label the item
+in customization menus and buffers.
+
 @item :group @var{group}
 Put this customization item in group @var{group}.  When you use
 @code{:group} in a @code{defgroup}, it makes the new group a subgroup of
@@ -48,10 +52,6 @@
 There are three alternatives you can use for @var{link-data}:
 
 @table @code
-@item :tag @var{name}
-Use @var{name}, a string, instead of the item's name, to label the item
-in customization menus and buffers.
-
 @item (custom-manual @var{info-node})
 Link to an Info node; @var{info-node} is a string which specifies the
 node name, as in @code{"(emacs)Top"}.  The link appears as
@@ -109,23 +109,22 @@
 
   The way to declare new customization groups is with @code{defgroup}.
 
+@defmac defgroup group members doc [keyword value]...
 @tindex defgroup
-@defmac defgroup group members doc [keyword value]...
 Declare @var{group} as a customization group containing @var{members}.
 Do not quote the symbol @var{group}.  The argument @var{doc} specifies
 the documentation string for the group.
 
-The arguments @var{members} can be an alist whose elements specify
-customization items to be members of the group; however, normally
+The argument @var{members} is a list specifying an initial set of
+customization items to be members of the group.  However, most often
 @var{members} is @code{nil}, and you specify the group's members by
 using the @code{:group} keyword when defining those members.
 
-@ignore
-@code{(@var{name} @var{widget})}.  Here @var{name} is a symbol, and
-@var{widget} is a widget for editing that symbol.  Useful widgets are
-@code{custom-variable} for editing variables, @code{custom-face} for
-editing faces, and @code{custom-group} for editing groups.
-@end ignore
+If you want to specify group members through @var{members}, each element
+should have the form @code{(@var{name} @var{widget})}.  Here @var{name}
+is a symbol, and @var{widget} is a widget type for editing that symbol.
+Useful widgets are @code{custom-variable} for a variable,
+@code{custom-face} for a face, and @code{custom-group} for a group.
 
 In addition to the common keywords (@pxref{Common Keywords}), you can
 use this keyword in @code{defgroup}:
@@ -162,18 +161,18 @@
 
   Use @code{defcustom} to declare user-editable variables.
 
+@defmac defcustom option default doc [keyword value]...
 @tindex defcustom
-@defmac defcustom option default doc [keyword value]...
 Declare @var{option} as a customizable user option variable.  Do not
 quote @var{option}.  The argument @var{doc} specifies the documentation
 string for the variable.
 
 If @var{option} is void, @code{defcustom} initializes it to
 @var{default}.  @var{default} should be an expression to compute the
-value; be careful in writing it, because it can be be evaluated on more
+value; be careful in writing it, because it can be evaluated on more
 than one occasion.
 
-The following additional keywords are defined:
+The following additional keywords are accepted:
 
 @table @code
 @item :type @var{type}
@@ -191,8 +190,9 @@
 these functions, but they are offered as convenient alternatives.
 
 @item :version @var{version}
-This option specifies that the variable's default value was changed in
-Emacs version @var{version}.  For example,
+This option specifies that the variable was first introduced, or its
+default value was changed, in Emacs version @var{version}.  The value
+@var{version} must be a string.  For example,
 
 @example
 (defcustom foo-max 34
@@ -260,7 +260,7 @@
 (defcustom show-paren-mode nil
   "Toggle Show Paren mode@enddots{}"
   :set (lambda (symbol value)
-	 (show-paren-mode (or value 0)))
+         (show-paren-mode (or value 0)))
   :initialize 'custom-initialize-default
   :type 'boolean
   :group 'paren-showing
@@ -369,6 +369,13 @@
 The value must be a directory name, and you can do completion with
 @kbd{M-@key{TAB}}.
 
+@item hook
+The value must be a list of functions (or a single function, but that is
+obsolete usage).  This customization type is used for hook variables.
+You can use the @code{:option} in the @code{defcustom} for a hook
+variable to specify functions recommended for use in the hook;
+see @ref{Variable Definitions}.
+
 @item symbol
 The value must be a symbol.  It appears in the customization buffer as
 the name of the symbol.
@@ -381,6 +388,10 @@
 The value must be a variable name, and you can do completion with
 @kbd{M-@key{TAB}}.
 
+@item face
+The value must be a symbol which is a face name, and you can do
+completion with @kbd{M-@key{TAB}}.
+
 @item boolean
 The value is boolean---either @code{nil} or @code{t}.  Note that by
 using @code{choice} and @code{const} together (see the next section),
@@ -399,24 +410,26 @@
 @table @code
 @item (restricted-sexp :match-alternatives @var{criteria})
 The value may be any Lisp object that satisfies one of @var{criteria}.
-@var{criteria} should be a list, and each elements should be
+@var{criteria} should be a list, and each element should be
 one of these possibilities:
 
 @itemize @bullet
 @item
-A predicate---that is, a function of one argument that returns non-@code{nil}
-if the argument fits a certain type.  This means that objects of that type
-are acceptable.
+A predicate---that is, a function of one argument that has no side
+effects, and returns either @code{nil} or non-@code{nil} according to
+the argument.  Using a predicate in the list says that objects for which
+the predicate returns non-@code{nil} are acceptable.
 
 @item
-A quoted constant---that is, @code{'@var{object}}.  This means that
-@var{object} itself is an acceptable value.
+A quoted constant---that is, @code{'@var{object}}.  This sort of element
+in the list says that @var{object} itself is an acceptable value.
 @end itemize
 
 For example,
 
 @example
-(restricted-sexp :match-alternatives (integerp 't 'nil))
+(restricted-sexp :match-alternatives
+                 (integerp 't 'nil))
 @end example
 
 @noindent
@@ -427,7 +440,7 @@
 
 @item (cons @var{car-type} @var{cdr-type})
 The value must be a cons cell, its @sc{car} must fit @var{car-type}, and
-its @sc{cdr} must fit @var{cdr-type}.  For example, @code{(const string
+its @sc{cdr} must fit @var{cdr-type}.  For example, @code{(cons string
 symbol)} is a customization type which matches values such as
 @code{("foo" . foo)}.
 
@@ -444,7 +457,7 @@
 three elements; the first element must be an integer, the second a
 string, and the third a function.
 
-In the customization buffer, the each element is displayed and edited
+In the customization buffer, each element is displayed and edited
 separately, according to the type specified for it.
 
 @item (vector @var{element-types}@dots{})
@@ -466,10 +479,10 @@
 an integer stands for a number of spaces, while a string is text to use
 verbatim, you might write the customization type this way,
 
-@smallexample
+@example
 (choice (integer :tag "Number of spaces")
         (string :tag "Literal text"))
-@end smallexample
+@end example
 
 @noindent
 so that the menu offers @samp{Number of spaces} and @samp{Literal Text}.
@@ -488,11 +501,11 @@
 @code{:tag} is often used with @code{const}, inside of @code{choice}.
 For example,
 
-@smallexample
+@example
 (choice (const :tag "Yes" t)
         (const :tag "No" nil)
         (const :tag "Ask" foo))
-@end smallexample
+@end example
 
 @item (function-item @var{function})
 Like @code{const}, but used for values which are functions.  This
@@ -733,7 +746,7 @@
 @end enumerate
 
 @item :parent
-The parent of a nested widget (e.g. a @code{menu-choice} item or an
+The parent of a nested widget (e.g., a @code{menu-choice} item or an
 element of a @code{editable-list} widget).
 
 @item :sibling-args