[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/inspector e834de3e6d 03/93: Inspect classes
From: |
ELPA Syncer |
Subject: |
[elpa] externals/inspector e834de3e6d 03/93: Inspect classes |
Date: |
Tue, 24 May 2022 18:57:54 -0400 (EDT) |
branch: externals/inspector
commit e834de3e6d0c46f75a1b3c1c75e7d68c52187b9a
Author: Mariano Montone <marianomontone@gmail.com>
Commit: Mariano Montone <marianomontone@gmail.com>
Inspect classes
---
emacs-inspector.el | 31 ++++++++++++++++++++++++++-----
1 file changed, 26 insertions(+), 5 deletions(-)
diff --git a/emacs-inspector.el b/emacs-inspector.el
index a2da8f380f..ddeba0a355 100644
--- a/emacs-inspector.el
+++ b/emacs-inspector.el
@@ -2,10 +2,30 @@
(require 'cl)
+(defun princ-to-string (x)
+ (with-output-to-string
+ (princ x)))
+
(cl-defgeneric inspect-object (object))
(cl-defmethod inspect-object ((class (subclass eieio-default-superclass)))
- (debug "Inspect class %s" class))
+ (insert (format "Class: %s" (class-name class)))
+ (newline 2)
+ (insert "Direct superclasses: ")
+ (dolist (superclass (class-direct-superclasses class))
+ (emacs-inspector--insert-inspect-button
+ (class-name superclass) (class-name superclass))
+ (insert " "))
+ (newline)
+ (insert "Class slots: ")
+ (dolist (slot (eieio-class-slots class))
+ (insert (format "%s " (cl--slot-descriptor-name slot))))
+ (newline)
+ (insert "Direct subclasses:")
+ (dolist (subclass (class-direct-subclasses class))
+ (emacs-inspector--insert-inspect-button
+ (class-name subclass) (class-name subclass))
+ (insert " ")))
(cl-defmethod inspect-object ((object (eql t)))
(debug "True"))
@@ -22,16 +42,16 @@
(insert "Instance of ")
(emacs-inspector--insert-inspect-button
(class-of object)
- (prin1-to-string (eieio-class-name (eieio-object-class object))))
+ (eieio-class-name (eieio-object-class object)))
(newline 2)
- (insert "Slots:")
+ (insert "Slot values:")
(newline)
(dolist (slot (eieio-class-slots (eieio-object-class object)))
(insert (format "%s: " (cl--slot-descriptor-name slot)))
(emacs-inspector--insert-inspect-button
(slot-value object (cl--slot-descriptor-name slot)))
(newline)))
- (t (error "Cannot inspect object"))))
+ (t (error "Cannot inspect object: %s" object))))
(defun plistp (list)
(let ((expected t))
@@ -55,7 +75,8 @@
(alistp '((a . 22) (b . "foo")))
(defun emacs-inspector--insert-inspect-button (object &optional label)
- (insert-button (or label (prin1-to-string object))
+ (insert-button (or (and label (princ-to-string label))
+ (princ-to-string object))
'action (lambda (btn)
(emacs-inspector-inspect object))
'follow-link t))
- [elpa] externals/inspector 8791b90885 07/93: Housekeeping, (continued)
- [elpa] externals/inspector 8791b90885 07/93: Housekeeping, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector b609289074 20/93: Housekeeping, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector f8d2e8edef 23/93: Update README.md, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector e504625e80 26/93: Inspect structures, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 440bd7a530 17/93: Housekeeping, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector d7f85a9c25 16/93: Inspect array, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector cfa57e310b 18/93: Better presentation functions, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 4d409a6715 32/93: Evaluate in menu, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector edbd5c1318 37/93: Association list inspector and custom var to toggle specialized, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 5d014ff023 39/93: Windows, frames, overlays, and buffers inspectors., ELPA Syncer, 2022/05/24
- [elpa] externals/inspector e834de3e6d 03/93: Inspect classes,
ELPA Syncer <=
- [elpa] externals/inspector b1035194b0 04/93: Integer printing, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 55a4df0b45 12/93: debugger-inspect-locals, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 1f659d04a6 34/93: Functions inspector, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector d1222593b5 36/93: Housekeeping, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 505cd1b077 50/93: tests: classes and structs, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 3a1f745658 56/93: Switch to inspector buffer when opened, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector b782644bbb 67/93: README: evaluate with inspected object, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector fa338ae5ed 90/93: Fontification adjustment, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector e60478dc93 08/93: Linter, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 53e8cc81c0 09/93: Minor mode and navigation, ELPA Syncer, 2022/05/24