Function: data-debug/eieio-insert-slots

data-debug/eieio-insert-slots is a byte-compiled function defined in eieio-datadebug.el.gz.

Signature

(data-debug/eieio-insert-slots &rest ARGS)

Implementations

(data-debug/eieio-insert-slots (OBJ eieio-default-superclass) PREFIX) in `eieio-datadebug.el'.

Insert the slots of OBJ into the current DDEBUG buffer.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/eieio-datadebug.el.gz
;;; METHODS
;;
;; Each object should have an opportunity to show stuff about itself.

(cl-defmethod data-debug/eieio-insert-slots ((obj eieio-default-superclass)
                                             prefix)
  "Insert the slots of OBJ into the current DDEBUG buffer."
  (let ((inhibit-read-only t))
    (data-debug-insert-thing (eieio-object-name-string obj)
			     prefix
			     "Name: ")
    (let* ((cv (eieio--object-class obj)))
      (data-debug-insert-thing (eieio--class-name cv)
			       prefix
			       "Class: ")
      ;; Loop over all the public slots
      (let ((slots (eieio--class-slots cv)))
	(dotimes (i (length slots))
          (let* ((slot (aref slots i))
                 (sname (cl--slot-descriptor-name slot))
                 (i (eieio--class-slot-initarg cv sname))
                 (sstr (concat (symbol-name (or i sname)) " ")))
            (if (slot-boundp obj sname)
                (let* ((v (eieio-oref obj sname)))
                  (data-debug-insert-thing v prefix sstr))
              ;; Unbound case
              (data-debug-insert-custom
               "#unbound" prefix sstr
               'font-lock-keyword-face)
              )))))))