1 (in-package :lisp-on-lines
)
3 (defclass display-description-class
(standard-description-class)
6 (defmethod description-class-attribute-class ((class display-description-class
))
9 (defun label-for-object (object)
11 (substitute #\Space
#\-
15 #+nil
(defdescription t
()
17 :function label-for-object
)
18 (identity :label nil
:function identity
)
19 (type :label
"Type" :function type-of
)
20 (class :label
"Class" :function class-of
)
21 (attribute-delimiter :label
"Attribute Delimiter"
26 (label-formatter :value princ-to-string
28 (value-formatter :value princ-to-string
30 (:metaclass standard-description-class
))
32 #+nil
(defmethod initialize-instance :around
((class display-description-class
) &rest initargs
&key
(direct-superclasses '()))
33 (declare (dynamic-extent initargs
))
35 (if (loop for direct-superclass in direct-superclasses
36 thereis
(ignore-errors (subtypep direct-superclass
(class-of (find-description t
)))))
38 (apply #'call-next-method
41 (append direct-superclasses
42 (list (class-of (find-description 't
))))
46 #+nil
(defmethod reinitialize-instance :around
((class display-description-class
) &rest initargs
&key
(direct-superclasses '() direct-superclasses-p
))
47 (declare (dynamic-extent initargs
))
48 ; (warn "CLASS ~A ARGS ~A:" class initargs)
50 (if (or (not direct-superclasses-p
)
51 (loop for direct-superclass in direct-superclasses
52 thereis
(ignore-errors (subtypep direct-superclass
(class-of (find-description t
))))))
54 (apply #'call-next-method
57 (append direct-superclasses
58 (list (class-of (find-description 't
))))