/[slime]/slime/swank.lisp
ViewVC logotype

Diff of /slime/swank.lisp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.354 by nsiivola, Fri Dec 16 13:35:14 2005 UTC revision 1.355 by mbaringer, Tue Dec 20 00:26:25 2005 UTC
# Line 3661  See `methods-by-applicability'.") Line 3661  See `methods-by-applicability'.")
3661                       maxlen                       maxlen
3662                       (length doc))))                       (length doc))))
3663    
3664    (defun all-slots-for-inspector (object)
3665      (append (list "------------------------------" '(:newline)
3666                   "All Slots:" '(:newline))
3667              (loop
3668                 with direct-slots = (swank-mop:class-direct-slots (class-of object))
3669                 for slot in (swank-mop:class-slots (class-of object))
3670                 for slot-def = (or (find-if (lambda (a)
3671                                               ;; find the direct slot
3672                                               ;; with the same name
3673                                               ;; as SLOT (an
3674                                               ;; effective slot).
3675                                               (eql (swank-mop:slot-definition-name a)
3676                                                    (swank-mop:slot-definition-name slot)))
3677                                             direct-slots)
3678                                    slot)
3679                 collect `(:value ,slot-def ,(inspector-princ (swank-mop:slot-definition-name slot-def)))
3680                 collect " = "
3681                 if (slot-boundp object (swank-mop:slot-definition-name slot-def))
3682                 collect `(:value ,(slot-value object (swank-mop:slot-definition-name slot-def)))
3683                 else
3684                 collect "#<unbound>"
3685                 collect '(:newline))))
3686    
3687  (defmethod inspect-for-emacs ((gf standard-generic-function) inspector)  (defmethod inspect-for-emacs ((gf standard-generic-function) inspector)
3688    (declare (ignore inspector))    (declare (ignore inspector))
3689    (flet ((lv (label value) (label-value-line label value)))    (flet ((lv (label value) (label-value-line label value)))
# Line 3683  See `methods-by-applicability'.") Line 3706  See `methods-by-applicability'.")
3706                         ,(let ((m method)) ; LOOP reassigns method                         ,(let ((m method)) ; LOOP reassigns method
3707                            (lambda ()                            (lambda ()
3708                              (remove-method gf m))))                              (remove-method gf m))))
3709                (:newline)))))))                (:newline)))
3710          `((:newline))
3711          (all-slots-for-inspector gf)))))
3712    
3713  (defmethod inspect-for-emacs ((method standard-method) inspector)  (defmethod inspect-for-emacs ((method standard-method) inspector)
3714    (declare (ignore inspector))    (declare (ignore inspector))
# Line 3702  See `methods-by-applicability'.") Line 3727  See `methods-by-applicability'.")
3727              (:newline)              (:newline)
3728              "Qualifiers: " (:value ,(swank-mop:method-qualifiers method))              "Qualifiers: " (:value ,(swank-mop:method-qualifiers method))
3729              (:newline)              (:newline)
3730              "Method function: " (:value ,(swank-mop:method-function method)))))              "Method function: " (:value ,(swank-mop:method-function method))
3731                (:newline)
3732                ,@(all-slots-for-inspector method))))
3733    
3734  (defmethod inspect-for-emacs ((class standard-class) inspector)  (defmethod inspect-for-emacs ((class standard-class) inspector)
3735    (declare (ignore inspector))    (declare (ignore inspector))
# Line 3761  See `methods-by-applicability'.") Line 3788  See `methods-by-applicability'.")
3788                                 `(:value ,(swank-mop:class-prototype class))                                 `(:value ,(swank-mop:class-prototype class))
3789                                 '"#<N/A (class not finalized)>")                                 '"#<N/A (class not finalized)>")
3790              (:newline)              (:newline)
3791              "------------------------------" (:newline)              ,@(all-slots-for-inspector class))))
             "All Slots:" (:newline)  
             ,@(loop  
                  with direct-slots = (swank-mop:class-direct-slots (class-of class))  
                  for slot in (swank-mop:class-slots (class-of class))  
                  for slot-def = (or (find-if (lambda (a)  
                                                ;; find the direct slot  
                                                ;; with the same name  
                                                ;; as SLOT (an  
                                                ;; effective slot).  
                                                (eql (swank-mop:slot-definition-name a)  
                                                     (swank-mop:slot-definition-name slot)))  
                                              direct-slots)  
                                     slot)  
                  collect `(:value ,slot-def ,(inspector-princ (swank-mop:slot-definition-name slot-def)))  
                  collect " = "  
                  if (slot-boundp class (swank-mop:slot-definition-name slot-def))  
                    collect `(:value ,(slot-value class (swank-mop:slot-definition-name slot-def)))  
                  else  
                    collect "#<unbound>"  
                  collect '(:newline)))))  
3792    
3793  (defmethod inspect-for-emacs ((slot swank-mop:standard-slot-definition) inspector)  (defmethod inspect-for-emacs ((slot swank-mop:standard-slot-definition) inspector)
3794    (declare (ignore inspector))    (declare (ignore inspector))
# Line 3796  See `methods-by-applicability'.") Line 3803  See `methods-by-applicability'.")
3803              "Init form: "  ,(if (swank-mop:slot-definition-initfunction slot)              "Init form: "  ,(if (swank-mop:slot-definition-initfunction slot)
3804                               `(:value ,(swank-mop:slot-definition-initform slot))                               `(:value ,(swank-mop:slot-definition-initform slot))
3805                               "#<unspecified>") (:newline)                               "#<unspecified>") (:newline)
3806              "Init function: " (:value ,(swank-mop:slot-definition-initfunction slot))              "Init function: " (:value ,(swank-mop:slot-definition-initfunction slot))
3807              (:newline))))              (:newline)
3808                ,@(all-slots-for-inspector slot))))
3809    
3810  (defmethod inspect-for-emacs ((package package) inspector)  (defmethod inspect-for-emacs ((package package) inspector)
3811    (declare (ignore inspector))    (declare (ignore inspector))

Legend:
Removed from v.1.354  
changed lines
  Added in v.1.355

  ViewVC Help
Powered by ViewVC 1.1.5