[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/inspector e60478dc93 08/93: Linter
From: |
ELPA Syncer |
Subject: |
[elpa] externals/inspector e60478dc93 08/93: Linter |
Date: |
Tue, 24 May 2022 18:57:55 -0400 (EDT) |
branch: externals/inspector
commit e60478dc9313600fbd14edd3bf0454931882bd99
Author: Mariano Montone <marianomontone@gmail.com>
Commit: Mariano Montone <marianomontone@gmail.com>
Linter
---
inspector.el | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++---------
1 file changed, 56 insertions(+), 10 deletions(-)
diff --git a/inspector.el b/inspector.el
index 39ab993f17..e9e416c5bb 100644
--- a/inspector.el
+++ b/inspector.el
@@ -1,12 +1,20 @@
;;; emacs-inspector.el --- Inspector for Emacs Lisp objects -*-
lexical-binding: t -*-
-(require 'cl)
+;;; Commentary:
-(defun princ-to-string (x)
+;; Emacs Lisp objects inspector.
+
+;;; Code:
+
+(require 'eieio)
+
+(defun princ-to-string (object)
+ "Print OBJECT to string using `princ'."
(with-output-to-string
- (princ x)))
+ (princ object)))
(defun plistp (list)
+ "Return T if LIST is a property list."
(let ((expected t))
(and (evenp (length list))
(every (lambda (x)
@@ -15,6 +23,7 @@
list))))
(defun alistp (list)
+ "Return T if LIST is an association list."
(every (lambda (x)
(and (consp x)
(symbolp (car x))))
@@ -23,12 +32,12 @@
(cl-defgeneric inspect-object (object))
(cl-defmethod inspect-object ((class (subclass eieio-default-superclass)))
- (insert (format "Class: %s" (class-name class)))
+ (insert (format "Class: %s" (eioio-class-name class)))
(newline 2)
(insert "Direct superclasses: ")
- (dolist (superclass (class-direct-superclasses class))
+ (dolist (superclass (eieio-class-parents class))
(inspector--insert-inspect-button
- (class-name superclass) (class-name superclass))
+ (eioio-class-name superclass) (eieio-class-name superclass))
(insert " "))
(newline)
(insert "Class slots: ")
@@ -36,9 +45,9 @@
(insert (format "%s " (cl--slot-descriptor-name slot))))
(newline)
(insert "Direct subclasses:")
- (dolist (subclass (class-direct-subclasses class))
+ (dolist (subclass (eieio-class-children class))
(inspector--insert-inspect-button
- (class-name subclass) (class-name subclass))
+ (eieio-class-name subclass) (eieio-class-name subclass))
(insert " ")))
(cl-defmethod inspect-object ((object (eql t)))
@@ -55,7 +64,7 @@
((eieio-object-p object)
(insert "Instance of ")
(inspector--insert-inspect-button
- (class-of object)
+ (eieio-object-class object)
(eieio-class-name (eieio-object-class object)))
(newline 2)
(insert "Slot values:")
@@ -68,10 +77,12 @@
(t (error "Cannot inspect object: %s" object))))
(defun inspector--insert-inspect-button (object &optional label)
+ "Insert button for inspecting OBJECT.
+If LABEL has a value, then it is used as button label. Otherwise, button
label is the printed representation of OBJECT."
(insert-button (or (and label (princ-to-string label))
(prin1-to-string object))
'action (lambda (btn)
- (inspector-inspect object))
+ (inspector-inspect object))
'follow-link t))
(cl-defmethod inspect-object ((cons cons))
@@ -127,22 +138,57 @@
(debug "Inspect hash-table"))
(defun inspector-make-inspector-buffer ()
+ "Create an inspector buffer."
(let ((buffer (get-buffer-create "*inspector*")))
(with-current-buffer buffer
+ (inspector-mode)
(setq buffer-read-only nil)
(erase-buffer))
buffer))
(defun inspect-expression (exp)
+ "Evaluate and inspect EXP expression."
(interactive (list (read--expression "Eval and inspect: ")))
(inspector-inspect (eval exp)))
(defun inspector-inspect (object)
+ "Top-level function for inspecting OBJECTs."
(let ((buffer (inspector-make-inspector-buffer)))
(with-current-buffer buffer
(inspect-object object)
(setq buffer-read-only t)
(display-buffer buffer))))
+(defgroup inspector nil
+ "Emacs Lisp inspector customizations."
+ :group 'lisp)
+
+(defcustom inspector-use-one-buffer t
+ "Inspect objects in one buffer."
+ :type 'boolean
+ :group 'inspector)
+
+(defvar inspector-mode-map
+ (let ((map (make-keymap)))
+ (define-key map (kbd "q") 'inspector-quit)))
+
+(define-minor-mode inspector-mode
+ "Minor mode for inspector buffers."
+ :init-value nil
+ :lighter " inspector"
+ :keymap inspector-mode-map
+ :group 'inspector)
+
+;; Better define and use a major mode?:
+;; (define-derived-mode inspector-mode fundamental-mode
+;; "Inspector"
+;; "
+;; \\{inspector-mode-map}"
+;; (set-syntax-table lisp-mode-syntax-table)
+;; ;;(slime-set-truncate-lines)
+;; (setq buffer-read-only t))
+
(provide 'inspector)
+
+;;; inspector.el ends here
- [elpa] externals/inspector 5d014ff023 39/93: Windows, frames, overlays, and buffers inspectors., (continued)
- [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, 2022/05/24
- [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 <=
- [elpa] externals/inspector 53e8cc81c0 09/93: Minor mode and navigation, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 4f9961f7bb 11/93: Truncate printed objects, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 6f47c95ea2 21/93: README, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector c0269276bc 22/93: Update README.md, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 37b54f480f 24/93: Screenshot, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 3ccaee246c 13/93: Better debugger-inspect-locals, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 77574c358f 25/93: el-get recipe, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector cd53047a49 27/93: Remove some of the warnings, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector f005f979f2 28/93: hash-table inspector, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 5d9fbcc886 14/93: Use letter 'i' to inspect debugger stack frames, ELPA Syncer, 2022/05/24