branch: externals/inspector commit e3a4f1c957555df8b9add4a734f77e9f5b4daa63 Author: Mariano Montone <marianomont...@gmail.com> Commit: Mariano Montone <marianomont...@gmail.com>
after package-lint ... --- inspector.el | 73 +++++++++++++++++++++++++++++------------------------------- 1 file changed, 35 insertions(+), 38 deletions(-) diff --git a/inspector.el b/inspector.el index d1739d82aa..139d34ceae 100644 --- a/inspector.el +++ b/inspector.el @@ -1,12 +1,12 @@ -;;; inspector.el --- Tool for inspection of Emacs Lisp objects. -*- lexical-binding: t -*- +;;; inspector.el --- Tool for inspection of Emacs Lisp objects -*- lexical-binding: t -*- ;; Copyright (C) 2021-2022 Free Software Foundation, Inc. ;; Author: Mariano Montone <marianomont...@gmail.com> ;; URL: https://github.com/mmontone/emacs-inspector -;; Keywords: debugging, tool, emacs-lisp, development +;; Keywords: debugging, tool, lisp, development ;; Version: 0.7 -;; Package-Requires: ((emacs "27")) +;; Package-Requires: ((emacs "27.1")) ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -27,8 +27,8 @@ ;; ;; Usage: ;; -;; M-x `inspect-expression' to evaluate an elisp expression and inspect the result. -;; M-x `inspect-last-sexp' to evaluate last sexp in current buffer and inspect the result. +;; M-x `inspector-inspect-expression' to evaluate an elisp expression and inspect the result. +;; M-x `inspector-inspect-last-sexp' to evaluate last sexp in current buffer and inspect the result. ;; ;; Inside the inspector: ;; @@ -264,7 +264,7 @@ slice in buffer." ;;--------- Object inspectors ---------------------------------- -(cl-defgeneric inspect-object (object) +(cl-defgeneric inspector-inspect-object (object) "Render inspector buffer for OBJECT. Methods of this generic function are expected to specialize on the type of @@ -276,7 +276,7 @@ and `inspector--insert-value' for inserting title,and properties and its values. For linking to another object, `inspector--insert-inspect-button' is expected to be used.") -(cl-defmethod inspect-object ((class (subclass eieio-default-superclass))) +(cl-defmethod inspector-inspect-object ((class (subclass eieio-default-superclass))) "Render inspector buffer for EIEIO CLASS." (inspector--insert-title (format "%s class" (eieio-class-name class))) (insert "direct superclasses: ") @@ -295,17 +295,17 @@ is expected to be used.") (eieio-class-name subclass) (eieio-class-name subclass)) (insert " "))) -(cl-defmethod inspect-object ((_object (eql t))) +(cl-defmethod inspector-inspect-object ((_object (eql t))) "Render inspector buffer for boolean T." (inspector--insert-title "boolean") (insert "value: t")) -(cl-defmethod inspect-object ((_object (eql nil))) +(cl-defmethod inspector-inspect-object ((_object (eql nil))) "Render inspector buffer for nil object." (inspector--insert-title "nil") (insert "value: nil")) -(cl-defmethod inspect-object ((symbol symbol)) +(cl-defmethod inspector-inspect-object ((symbol symbol)) "Render inspector buffer for SYMBOL." (inspector--insert-title "symbol") (inspector--insert-label "name") @@ -321,7 +321,7 @@ is expected to be used.") (inspector--insert-inspect-button (symbol-plist symbol)) (newline)) -(cl-defmethod inspect-object ((object t)) +(cl-defmethod inspector-inspect-object ((object t)) "Render inspector buffer for OBJECT." (cond ;; FIXME: Why use this `cond' instead of using separate methods? @@ -378,7 +378,7 @@ is expected to be used.") (inspector--insert-title (inspector--princ-to-string (type-of object))) (inspector--insert-value (inspector--princ-to-string object))))) -(cl-defmethod inspect-object ((process process)) +(cl-defmethod inspector-inspect-object ((process process)) "Inspect a PROCESS." (inspector--insert-title "process") (inspector--insert-value (inspector--princ-to-string process)) @@ -406,7 +406,7 @@ is expected to be used.") (inspector--insert-inspect-button value)) (newline)))) -(cl-defmethod inspect-object ((cons cons)) +(cl-defmethod inspector-inspect-object ((cons cons)) "Inspect a CONS object." (cond ((and inspector-use-specialized-inspectors-for-lists @@ -465,8 +465,7 @@ is expected to be used.") (inspector--insert-inspect-button elem) (newline)) ;; A [more] button is inserted or not depending on the boolean returned here: - (< i (length cons)) - )))) + (< i (length cons)))))) (t ;; It is a cons cell (inspector--insert-title "cons cell") (inspector--insert-label "car") @@ -475,12 +474,12 @@ is expected to be used.") (inspector--insert-label "cdr") (inspector--insert-inspect-button (cdr cons))))) -(cl-defmethod inspect-object ((string string)) +(cl-defmethod inspector-inspect-object ((string string)) "Render inspector buffer for STRING." (inspector--insert-title "string") (prin1 string (current-buffer))) -(cl-defmethod inspect-object ((array array)) +(cl-defmethod inspector-inspect-object ((array array)) "Render inspector buffer for ARRAY." (inspector--insert-title (inspector--princ-to-string (type-of array))) (let ((length (length array))) @@ -500,10 +499,9 @@ is expected to be used.") (inspector--insert-inspect-button (aref array k)) (newline)) ;; Insert [more] button?: - (< i length) - ))))) + (< i length)))))) -(cl-defmethod inspect-object ((buffer buffer)) +(cl-defmethod inspector-inspect-object ((buffer buffer)) "Render inspector buffer for Emacs BUFFER." (inspector--insert-title (prin1-to-string buffer)) (inspector--insert-label "name") @@ -529,7 +527,7 @@ is expected to be used.") (inspector--insert-inspect-button (with-current-buffer buffer buffer-read-only)))) -(cl-defmethod inspect-object ((window window)) +(cl-defmethod inspector-inspect-object ((window window)) "Render inspector buffer for Emacs WINDOW." (inspector--insert-title (prin1-to-string window)) (inspector--insert-label "parent") @@ -544,7 +542,7 @@ is expected to be used.") (inspector--insert-label "frame") (inspector--insert-inspect-button (window-frame window))) -(cl-defmethod inspect-object ((frame frame)) +(cl-defmethod inspector-inspect-object ((frame frame)) "Render inspector buffer for Emacs FRAME." (inspector--insert-title (prin1-to-string frame)) (inspector--insert-label "first window") @@ -553,7 +551,7 @@ is expected to be used.") (inspector--insert-label "parameters") (inspector--insert-inspect-button (frame-parameters frame))) -(cl-defmethod inspect-object ((overlay overlay)) +(cl-defmethod inspector-inspect-object ((overlay overlay)) "Render inspector buffer for Emacs OVERLAY." (inspector--insert-title (prin1-to-string overlay)) (inspector--insert-label "buffer") @@ -568,13 +566,13 @@ is expected to be used.") (inspector--insert-label "properties") (inspector--insert-inspect-button (overlay-properties overlay))) -(cl-defmethod inspect-object ((number number)) +(cl-defmethod inspector-inspect-object ((number number)) "Render inspector buffer for NUMBER." (inspector--insert-title (inspector--princ-to-string (type-of number))) (inspector--insert-label "value") (insert (inspector--princ-to-string number))) -(cl-defmethod inspect-object ((integer integer)) +(cl-defmethod inspector-inspect-object ((integer integer)) "Render inspector buffer for INTEGER." (inspector--insert-title (inspector--princ-to-string (type-of integer))) (inspector--insert-label "integer") @@ -583,7 +581,7 @@ is expected to be used.") (inspector--insert-label "character") (insert (inspector--princ-to-string (char-to-string integer)))) -(cl-defmethod inspect-object ((hash-table hash-table)) +(cl-defmethod inspector-inspect-object ((hash-table hash-table)) "Render inspector buffer for HASH-TABLEs." (inspector--insert-title (inspector--print-truncated hash-table)) (inspector--insert-label "size") @@ -611,8 +609,7 @@ is expected to be used.") (inspector--insert-inspect-button (gethash key hash-table)) (newline)) ;; Insert [more] button? - (< i (length keys)) - )))))) + (< i (length keys)))))))) ;;--- Buffers ------------------------------ @@ -632,7 +629,7 @@ is expected to be used.") ;;------ Commands ----------------------------- ;;;###autoload -(defun inspect-expression (exp) +(defun inspector-inspect-expression (exp) "Evaluate EXP and inspect its result." (interactive (list (read--expression "Eval and inspect: "))) @@ -644,7 +641,7 @@ is expected to be used.") (with-current-buffer buffer (setq inspector-inspected-object object) (setq * object) - (inspect-object object) + (inspector-inspect-object object) (goto-char 0) (setq buffer-read-only t) buffer))) @@ -679,7 +676,7 @@ When PRESERVE-HISTORY is T, inspector history is not cleared." (inspector--basic-inspect object)))) ;;;###autoload -(defun inspect-last-sexp () +(defun inspector-inspect-last-sexp () "Evaluate sexp before point and inspect the result." (interactive) (let ((result (eval (eval-sexp-add-defvars (elisp--preceding-sexp)) lexical-binding))) @@ -688,7 +685,7 @@ When PRESERVE-HISTORY is T, inspector history is not cleared." ;;-- Inspection from Emacs debugger ;;;###autoload -(defun inspect-debugger-locals () +(defun inspector-inspect-debugger-locals () "Inspect local variables of the frame at point in debugger backtrace." (interactive) (let* ((nframe (debugger-frame-number)) @@ -696,7 +693,7 @@ When PRESERVE-HISTORY is T, inspector history is not cleared." (inspector-inspect (inspector--alist-to-plist locals)))) ;;;###autoload -(defun inspect-debugger-local (varname) +(defun inspector-inspect-debugger-local (varname) "Inspect local variable named VARNAME of frame at point in debugger backtrace." (interactive (list @@ -712,7 +709,7 @@ When PRESERVE-HISTORY is T, inspector history is not cleared." (inspector-inspect (cdr (assoc (intern varname) locals)))))) ;;;###autoload -(defun inspect-debugger-current-frame () +(defun inspector-inspect-debugger-current-frame () "Inspect current frame in debugger backtrace." (interactive) (let* ((nframe (debugger-frame-number)) @@ -720,7 +717,7 @@ When PRESERVE-HISTORY is T, inspector history is not cleared." (inspector-inspect frame))) ;;;###autoload -(defun inspect-debugger-frame-and-locals () +(defun inspector-inspect-debugger-frame-and-locals () "Inspect current frame and locals in debugger backtrace." (interactive) (let* ((nframe (debugger-frame-number)) @@ -730,18 +727,18 @@ When PRESERVE-HISTORY is T, inspector history is not cleared." :locals (inspector--alist-to-plist locals))))) ;; Press letter 'i' in debugger backtrace to inspect locals. -(define-key debugger-mode-map "i" #'inspect-debugger-frame-and-locals) +(define-key debugger-mode-map "i" #'inspector-inspect-debugger-frame-and-locals) ;; ----- edebug-mode--------------------------------------- ;;;###autoload -(defun inspect-edebug-expression (expr) +(defun inspector-inspect-edebug-expression (expr) "Evaluate EXPR in edebug-mode, and inspect the result." (interactive "xInspect edebug expression: ") (inspector-inspect (edebug-eval expr))) ;; Press 'C-c C-i' to inspect expression in edebug-mode -(define-key edebug-mode-map (kbd "C-c C-i") #'inspect-edebug-expression) +(define-key edebug-mode-map (kbd "C-c C-i") #'inspector-inspect-edebug-expression) ;;--------- Inspector mode ---------------------------------