From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Matt Hodges Newsgroups: gmane.emacs.devel Subject: lispref/customize.texi checked. Date: Mon, 22 Nov 2004 14:55:35 +0000 Message-ID: <87hdniorvc.fsf@molpro.net> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: sea.gmane.org 1101136019 30422 80.91.229.6 (22 Nov 2004 15:06:59 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Mon, 22 Nov 2004 15:06:59 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Nov 22 16:06:40 2004 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1CWFc9-00031q-00 for ; Mon, 22 Nov 2004 15:56:25 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CWFlC-0004qg-3z for ged-emacs-devel@m.gmane.org; Mon, 22 Nov 2004 10:05:46 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CWFkp-0004iE-Ou for emacs-devel@gnu.org; Mon, 22 Nov 2004 10:05:23 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1CWFkn-0004hW-Uv for emacs-devel@gnu.org; Mon, 22 Nov 2004 10:05:22 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CWFkn-0004go-MC for emacs-devel@gnu.org; Mon, 22 Nov 2004 10:05:21 -0500 Original-Received: from [80.91.229.2] (helo=main.gmane.org) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CWFbY-0003Rt-Az for emacs-devel@gnu.org; Mon, 22 Nov 2004 09:55:48 -0500 Original-Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1CWFbX-0002Jw-00 for ; Mon, 22 Nov 2004 15:55:47 +0100 Original-Received: from 192.146.136.129 ([192.146.136.129]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 22 Nov 2004 15:55:47 +0100 Original-Received: from MPHodges by 192.146.136.129 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 22 Nov 2004 15:55:47 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-To: emacs-devel@gnu.org Original-Lines: 184 Original-X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: 192.146.136.129 User-Agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.3.50 (gnu/linux) Cancel-Lock: sha1:Fot+wFniEtaypq6trlc6MpIBBm0= X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:30247 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:30247 --=-=-= Here are some fixes and suggested changes for lispref/customize.texi: --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=customize.texi.diff Content-Description: lispref/customize.texi patch. *** /scratch/matt/ediff2486435C Mon Nov 22 14:46:40 2004 --- /home/matt/software/cvs/emacs/lispref/customize.texi Mon Nov 22 14:21:54 2004 *************** *** 304,310 **** @example (defcustom show-paren-mode nil ! "Toggle Show Paren mode..." :set (lambda (symbol value) (show-paren-mode (or value 0))) :initialize 'custom-initialize-default --- 304,310 ---- @example (defcustom show-paren-mode nil ! "Non-nil if Show-Paren mode is enabled..." :set (lambda (symbol value) (show-paren-mode (or value 0))) :initialize 'custom-initialize-default *************** *** 538,544 **** ("ken" 52 t)) "Alist of basic info about people. Each element has the form (NAME AGE MALE-FLAG)." ! :type '(alist :value-type (group age boolean))) (defcustom pets '(("brian") ("dorith" "dog" "guppy") --- 538,544 ---- ("ken" 52 t)) "Alist of basic info about people. Each element has the form (NAME AGE MALE-FLAG)." ! :type '(alist :value-type (group integer boolean))) (defcustom pets '(("brian") ("dorith" "dog" "guppy") *************** *** 665,671 **** @end example @noindent ! so that the menu offers @samp{Number of spaces} and @samp{Literal Text}. In any alternative for which @code{nil} is not a valid value, other than a @code{const}, you should specify a valid default for that alternative --- 665,671 ---- @end example @noindent ! so that the menu offers @samp{Number of spaces} and @samp{Literal text}. In any alternative for which @code{nil} is not a valid value, other than a @code{const}, you should specify a valid default for that alternative *************** *** 824,831 **** Use @var{criteria} to match possible values. This is used only in @code{restricted-sexp}. ! @item :args @var{argumentlist} ! Use the elements of @var{argumentlist} as the arguments of the type construct. For instance, @code{(const :args (foo))} is equivalent to @code{(const foo)}. You rarely need to write @code{:args} explicitly, because normally the arguments are recognized automatically as --- 824,831 ---- Use @var{criteria} to match possible values. This is used only in @code{restricted-sexp}. ! @item :args @var{argument-list} ! Use the elements of @var{argument-list} as the arguments of the type construct. For instance, @code{(const :args (foo))} is equivalent to @code{(const foo)}. You rarely need to write @code{:args} explicitly, because normally the arguments are recognized automatically as *************** *** 1071,1077 **** using the same type for many user options, rather than repeat the specification for each option, you can give the type specification a name once, and use that name each @code{defcustom}. The other case is ! when a user option accept a recursive datastructure. To make it possible for a datatype to refer to itself, it needs to have a name. Since custom types are implemented as widgets, the way to define a new --- 1071,1077 ---- using the same type for many user options, rather than repeat the specification for each option, you can give the type specification a name once, and use that name each @code{defcustom}. The other case is ! when a user option accepts a recursive data structure. To make it possible for a datatype to refer to itself, it needs to have a name. Since custom types are implemented as widgets, the way to define a new *************** *** 1097,1136 **** :type 'binary-tree-of-string) @end example ! The function to define a new widget is name @code{define-widget}. The first argument is the symbol we want to make a new widget type. The second argument is a symbol representing an existing widget, the new widget is going to be defined in terms of difference from the existing widget. For the purpose of defining new customization types, the ! @code{lazy} widget is perfect, because it accept a @code{:type} keyword argument with the same syntax as the keyword argument to @code{defcustom} with the same name. The third argument is a documentation string for the new widget. You will be able to see that string with the @kbd{M-x widget-browse @key{ret} binary-tree-of-string @key{ret}} command. ! After these mandatory arguments follows the keyword arguments. The most important is @code{:type}, which describes the datatype we want to match with this widget. Here a @code{binary-tree-of-string} is described as being either a string, or a cons-cell whose car and cdr are themselves both @code{binary-tree-of-string}. Note the reference to the widget type we are currently in the process of defining. The @code{:tag} attribute is a string to name the widget in the user interface, and the ! @code{:offset} argument are there to ensure that child nodes are ! indented four spaces relatively to the parent node, making the tree structure apparent in the customization buffer. The @code{defcustom} shows how the new widget can be used as an ordinary customization type. ! If you wonder about the name @code{lazy}, know that the other composite ! widgets convert their inferior widgets to internal form when the widget ! is instantiated in a buffer. This conversion is recursive, so the ! inferior widgets will convert @emph{their} inferior widgets. If the ! datastructure is itself recursive, this conversion will go on forever, ! or at least until Emacs run out of stack space. The @code{lazy} widget ! stop this recursion, it will only convert its @code{:type} argument when ! needed. @ignore arch-tag: d1b8fad3-f48c-4ce4-a402-f73b5ef19bd2 --- 1097,1136 ---- :type 'binary-tree-of-string) @end example ! The function to define a new widget is called @code{define-widget}. The first argument is the symbol we want to make a new widget type. The second argument is a symbol representing an existing widget, the new widget is going to be defined in terms of difference from the existing widget. For the purpose of defining new customization types, the ! @code{lazy} widget is perfect, because it accepts a @code{:type} keyword argument with the same syntax as the keyword argument to @code{defcustom} with the same name. The third argument is a documentation string for the new widget. You will be able to see that string with the @kbd{M-x widget-browse @key{ret} binary-tree-of-string @key{ret}} command. ! After these mandatory arguments follow the keyword arguments. The most important is @code{:type}, which describes the datatype we want to match with this widget. Here a @code{binary-tree-of-string} is described as being either a string, or a cons-cell whose car and cdr are themselves both @code{binary-tree-of-string}. Note the reference to the widget type we are currently in the process of defining. The @code{:tag} attribute is a string to name the widget in the user interface, and the ! @code{:offset} argument is there to ensure that child nodes are ! indented four spaces relative to the parent node, making the tree structure apparent in the customization buffer. The @code{defcustom} shows how the new widget can be used as an ordinary customization type. ! If you are curious about the name @code{lazy}, you need to understand ! that the other composite widgets convert their inferior widgets to an ! internal form when the widget is instantiated in a buffer. This ! conversion is recursive, so the inferior widgets will convert ! @emph{their} inferior widgets. If the data structure is itself ! recursive, this conversion will go on forever, or at least until Emacs ! run out of stack space. The @code{lazy} widget stop this recursion, it ! will only convert its @code{:type} argument when needed. @ignore arch-tag: d1b8fad3-f48c-4ce4-a402-f73b5ef19bd2 --=-=-= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel --=-=-=--