[slime-cvs] CVS slime
CVS User heller
heller at common-lisp.net
Wed Mar 3 11:57:03 UTC 2010
Update of /project/slime/cvsroot/slime
In directory cl-net:/tmp/cvs-serv8305
Modified Files:
ChangeLog slime.el swank.lisp
Log Message:
* slime.el (slime-inspector-history): New command.
--- /project/slime/cvsroot/slime/ChangeLog 2010/03/03 11:56:52 1.2009
+++ /project/slime/cvsroot/slime/ChangeLog 2010/03/03 11:57:03 1.2010
@@ -183,6 +183,9 @@
2010-03-03 Helmut Eller <heller at common-lisp.net>
+ * slime.el (slime-inspector-history): New command.
+
+2010-03-03 Helmut Eller <heller at common-lisp.net>
Don't try to bind keywords in inspector-eval.
* swank.lisp (inspector-eval): For now, don't bind symbols which
--- /project/slime/cvsroot/slime/slime.el 2010/03/02 12:38:06 1.1282
+++ /project/slime/cvsroot/slime/slime.el 2010/03/03 11:57:03 1.1283
@@ -6580,6 +6580,11 @@
(interactive (list (slime-read-from-minibuffer "Inspector eval: ")))
(slime-eval-with-transcript `(swank:inspector-eval ,string)))
+(defun slime-inspector-history ()
+ "Show the previously inspected objects."
+ (interactive)
+ (slime-eval-describe `(swank:inspector-history)))
+
(defun slime-inspector-show-source (part)
(interactive (list (or (get-text-property (point) 'slime-part-number)
(error "No part at point"))))
@@ -6673,6 +6678,7 @@
("d" 'slime-inspector-describe)
("p" 'slime-inspector-pprint)
("e" 'slime-inspector-eval)
+ ("h" 'slime-inspector-history)
("q" 'slime-inspector-quit)
("g" 'slime-inspector-reinspect)
("v" 'slime-inspector-toggle-verbose)
--- /project/slime/cvsroot/slime/swank.lisp 2010/03/03 11:56:52 1.694
+++ /project/slime/cvsroot/slime/swank.lisp 2010/03/03 11:57:03 1.695
@@ -3329,6 +3329,23 @@
(declare (ignorable . ,ignorable))
,form)))))
+(defslimefun inspector-history ()
+ (with-output-to-string (out)
+ (let ((newest (loop for s = *istate* then next
+ for next = (istate.next s)
+ if (not next) return s)))
+ (format out "--- next/prev chain ---")
+ (loop for s = newest then (istate.previous s) while s do
+ (let ((val (istate.object s)))
+ (format out "~%~:[ ~; *~]@~d "
+ (eq s *istate*)
+ (position val *inspector-history*))
+ (print-unreadable-object (val out :type t :identity t)))))
+ (format out "~%~%--- all visited objects ---")
+ (loop for val across *inspector-history* for i from 0 do
+ (format out "~%~2,' d " i)
+ (print-unreadable-object (val out :type t :identity t)))))
+
(defslimefun quit-inspector ()
(reset-inspector)
nil)
More information about the slime-cvs
mailing list