Update of /project/mcclim/cvsroot/mcclim/Doc In directory clnet:/tmp/cvs-serv18549/Doc
Modified Files: drei.texi docstrings.lisp Log Message: Finished documentation for syntax command tables.
--- /project/mcclim/cvsroot/mcclim/Doc/drei.texi 2007/01/22 11:37:12 1.7 +++ /project/mcclim/cvsroot/mcclim/Doc/drei.texi 2007/08/20 17:52:44 1.8 @@ -1245,7 +1245,29 @@ In order to provide conditionally active command tables, Drei defines the @class{syntax-command-table} class. While this class is meant to facilitate the addition of commands to syntaxes when they are run in a -specific context (for example, a large editor application adding a Show -Macroexpansion command to Lisp syntax), their modus operandi is general -enough to be used for all conditional activity of command tables. +specific context (for example, a large editor application adding a +@command{Show Macroexpansion} command to Lisp syntax), their modus +operandi is general enough to be used for all conditional activity of +command tables. This is useful for making commands available that +could not be generally implemented for all Drei instances --- +returning to the @command{Show Macroexpansion} example, such a command +can only be implemented if there is a sufficiently large place to show +the expansion, and this might not be available for a generic Drei +input-editor instance, but could be provided by an application +designed for it.
+Syntax command tables work by conditionally inheriting from other +command tables, so it is necessary to define one (or more) command +tables for the commands you wish to make conditionally available. + +When providing a @var{:command-table} argument to +@fmacro{define-syntax} that names a syntax command table, an instance +of the syntax command table will be used for the syntax. + +@include class-drei-syntax-syntax-command-table.texi + +@include fun-drei-syntax-use-editor-commands-p.texi + +@include fun-drei-syntax-additional-command-tables.texi + +@include macro-drei-syntax-define-syntax-command-table.texi --- /project/mcclim/cvsroot/mcclim/Doc/docstrings.lisp 2006/12/21 12:22:03 1.1 +++ /project/mcclim/cvsroot/mcclim/Doc/docstrings.lisp 2007/08/20 17:52:44 1.2 @@ -764,26 +764,37 @@ (format *texinfo-output* "@findex ~A~%" title)))))
(defun texinfo-inferred-body (doc) - (when (member (get-kind doc) '(class structure condition)) - (let ((name (get-name doc))) - ;; class precedence list - (format *texinfo-output* "Class precedence list: @code{~(~{@w{~A}~^, ~}~)}~%~%" - (remove-if (lambda (class) (hide-superclass-p name class)) - (mapcar #'class-name (class-precedence-list (progn (finalize-inheritance (find-class name)) - (find-class name)))))) - ;; slots - (let ((slots (remove-if (lambda (slot) (hide-slot-p name slot)) - (class-direct-slots (find-class name))))) - (when slots - (format *texinfo-output* "Slots:~%@itemize~%") - (dolist (slot slots) - (format *texinfo-output* "@item ~(@code{~A} ~ + (cond ((member (get-kind doc) '(class structure condition)) + (let ((name (get-name doc))) + ;; class precedence list + (format *texinfo-output* "Class precedence list: @code{~(~{@w{~A}~^, ~}~)}~%~%" + (remove-if (lambda (class) (hide-superclass-p name class)) + (mapcar #'class-name (class-precedence-list (progn (finalize-inheritance (find-class name)) + (find-class name)))))) + ;; slots + (let ((slots (remove-if (lambda (slot) (hide-slot-p name slot)) + (class-direct-slots (find-class name))))) + (when slots + (format *texinfo-output* "Slots:~%@itemize~%") + (dolist (slot slots) + (format *texinfo-output* "@item ~(@code{~A} ~ ~@[--- initargs: @code{~{@w{~S}~^, ~}}~]~)~%~%" - (slot-definition-name slot) - (slot-definition-initargs slot)) - ;; FIXME: Would be neater to handler as children - (write-texinfo-string (docstring slot t))) - (format *texinfo-output* "@end itemize~%~%")))))) + (slot-definition-name slot) + (slot-definition-initargs slot)) + ;; FIXME: Would be neater to handler as children + (write-texinfo-string (docstring slot t))) + (format *texinfo-output* "@end itemize~%~%"))))) + ((eq (get-kind doc) 'generic-function) + (let* ((method-combination + (sb-mop:generic-function-method-combination + (fdefinition (get-name doc)))) + (combination-name (sb-pcl::method-combination-type-name + method-combination)) + (options (sb-pcl::method-combination-options method-combination))) + (unless (eq combination-name 'standard) + (format *texinfo-output* + "Method combination: @code{~A} (~(~{@w{~A}~^, ~}~))~%~%" + combination-name options))))))
(defun texinfo-body (doc) (write-texinfo-string (get-string doc)))