emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/inspector f8affefb73 35/93: Major mode for inspector


From: ELPA Syncer
Subject: [elpa] externals/inspector f8affefb73 35/93: Major mode for inspector
Date: Tue, 24 May 2022 18:57:57 -0400 (EDT)

branch: externals/inspector
commit f8affefb73e4a629ae4abc4891bae388bfdc3afb
Author: Mariano Montone <marianomontone@gmail.com>
Commit: Mariano Montone <marianomontone@gmail.com>

    Major mode for inspector
---
 inspector.el | 51 ++++++++++++++++++++++++---------------------------
 1 file changed, 24 insertions(+), 27 deletions(-)

diff --git a/inspector.el b/inspector.el
index 6126fa6e21..07bcf978c1 100644
--- a/inspector.el
+++ b/inspector.el
@@ -318,16 +318,17 @@ If LABEL has a value, then it is used as button label.  
Otherwise, button label
 
 (defun inspector-make-inspector-buffer ()
   "Create an inspector buffer."
-  (let ((buffer (get-buffer-create "*inspector*")))
+  (let ((buffer (or (get-buffer "*inspector*")
+                    (let ((buf (get-buffer-create "*inspector*")))
+                      (with-current-buffer buf
+                        (inspector-mode)
+                        (make-local-variable '*))
+                      buf))))
     (with-current-buffer buffer
-      (inspector-mode)
-      ;;(emacs-lisp-mode)
       (setq buffer-read-only nil)
-      (erase-buffer)
-      (make-local-variable '*))
+      (erase-buffer))
     buffer))
 
-
 ;;------ Commands -----------------------------
 
 (defun inspect-expression (exp)
@@ -336,18 +337,26 @@ If LABEL has a value, then it is used as button label.  
Otherwise, button label
 
   (inspector-inspect (eval exp)))
 
-(defun inspector-inspect (object &optional add-to-history)
-  "Top-level function for inspecting OBJECTs.
-When ADD-TO-HISTORY is T, OBJECT is added to inspector history for navigation 
purposes."
+(defun inspector--basic-inspect (object)
   (let ((buffer (inspector-make-inspector-buffer)))
     (with-current-buffer buffer
-      (when add-to-history
-        (push inspector-inspected-object inspector-history))
       (setq inspector-inspected-object object)
       (setq * object)
       (inspect-object object)
       (setq buffer-read-only t)
-      (display-buffer buffer))))
+      (display-buffer buffer)
+      buffer)))
+
+(defun inspector-inspect (object &optional preserve-history)
+  "Top-level function for inspecting OBJECTs.
+When PRESERVE-HISTORY is T, inspector history is not cleared."
+  (let ((current-inspected-object inspector-inspected-object)
+        (buffer (inspector--basic-inspect object)))
+    (with-current-buffer buffer
+      (unless preserve-history
+        (setq inspector-history nil))
+      (when preserve-history
+        (push current-inspected-object inspector-history)))))
 
 (defun inspector-quit ()
   "Quit the Emacs inspector."
@@ -360,7 +369,7 @@ When ADD-TO-HISTORY is T, OBJECT is added to inspector 
history for navigation pu
   (interactive)
   (when inspector-history
     (let ((object (pop inspector-history)))
-      (inspector-inspect object))))
+      (inspector--basic-inspect object))))
 
 (defun inspect-last-sexp ()
   "Evaluate and inspect sexp before point."
@@ -412,21 +421,9 @@ When ADD-TO-HISTORY is T, OBJECT is added to inspector 
history for navigation pu
           (lambda ()
             (setq-local tool-bar-map inspector-tool-bar-map)))
 
-(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))
+(define-derived-mode inspector-mode emacs-lisp-mode
+  "Inspector mode")
 
 (provide 'inspector)
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]