[slime-cvs] CVS update: slime/slime.el

Helmut Eller heller at common-lisp.net
Thu Dec 4 21:30:35 UTC 2003


Update of /project/slime/cvsroot/slime
In directory common-lisp.net:/tmp/cvs-serv25970

Modified Files:
	slime.el 
Log Message:
(slime-debugging-state): Don't set sldb-level after sldb-setup. Breaks
the test-suite.
(slime-eval-defun): Fix typos.
(slime-xref-buffer, slime-goto-next-xref): Updated for the new xref
code.
(sldb-inspect-in-frame): Query with the sexp at point as initial
value.
(sldb-step): New command. Bound to s.




Date: Thu Dec  4 16:30:35 2003
Author: heller

Index: slime/slime.el
diff -u slime/slime.el:1.128 slime/slime.el:1.129
--- slime/slime.el:1.128	Thu Dec  4 02:38:28 2003
+++ slime/slime.el	Thu Dec  4 16:30:35 2003
@@ -1297,10 +1297,9 @@
      (when (or (not sldb-buffer)
                (/= sldb-level level)
                (with-current-buffer sldb-buffer 
-                 (/= sldb-level sldb-level-in-buffer)))
+                 (/= level sldb-level-in-buffer)))
        (setq sldb-level level)
-       (sldb-setup condition restarts frames)))
-   (setq sldb-level level))
+       (sldb-setup condition restarts frames))))
   ((:debug-return level)
    (assert (= level sldb-level))
    (sldb-cleanup)
@@ -2788,7 +2787,7 @@
     (cond ((string-match "^(defvar " form)
            (slime-re-evaluate-defvar form))
           (t
-           (slime-interactive-eval from))(slime-defun-at-point))))
+           (slime-interactive-eval form)))))
 
 (defun slime-eval-region (start end)
   "Evalute region."
@@ -3010,13 +3009,12 @@
 
 ;;;; XREF results buffer and window management
 
-(defun slime-xref-buffer (&optional create)
+(defun slime-xref-buffer ()
   "Return the XREF results buffer.
 If CREATE is non-nil, create it if necessary."
-  (if create
-      (get-buffer-create "*CMUCL xref*")
-    (or (get-buffer "*CMUCL xref*")
-        (error "No XREF buffer"))))
+  (or (find-if (lambda (b) (string-match "*XREF\\[" (buffer-name b)))
+               (buffer-list))
+      (error "No XREF buffer")))
 
 (defun slime-init-xref-buffer (package ref-type symbol)
   "Initialize the current buffer for displaying XREF information."
@@ -3145,18 +3143,21 @@
   (interactive)
   (let ((location (slime-xref-location-at-point)))
     (slime-show-source-location location)))
-        
+      
 (defun slime-goto-next-xref ()
   "Goto the next cross-reference location."
-  (save-selected-window
-    (slime-display-xref-buffer)
-    (loop do (goto-char (next-single-char-property-change (point) 'slime-xref))
-          until (or (get-text-property (point) 'slime-xref-complete)
-                    (eobp)))
-    (if (not (eobp))
-        (slime-goto-xref)
-      (forward-line -1)
-      (message "No more xrefs."))))
+  (let ((location (with-current-buffer (slime-xref-buffer)
+                    (display-buffer (current-buffer) t)
+                    (goto-char (next-single-char-property-change 
+                                (point) 'slime-location))
+                    (cond ((eobp)
+                           (message "No more xrefs.")
+                           nil)
+                          (t 
+                           (slime-xref-location-at-point))))))
+    (when location
+      (slime-goto-source-location location)
+      (switch-to-buffer (current-buffer)))))
 
 (defvar slime-next-location-function nil
   "Function to call for going to the next location.")
@@ -3488,7 +3489,8 @@
 
 (defun sldb-inspect-in-frame (string)
   (interactive (list (slime-read-from-minibuffer 
-                      "Inspect in frame (evaluated): ")))
+                      "Inspect in frame (evaluated): " 
+                      (slime-sexp-at-point))))
   (let ((number (sldb-frame-number-at-point)))
     (slime-eval-async `(swank:inspect-in-frame ,string ,number)
                       (slime-buffer-package)
@@ -3588,6 +3590,11 @@
 
 (defun sldb-restart-at-point ()
   (get-text-property (point) 'restart-number))
+
+(defun sldb-step ()
+  (interactive)
+  (let ((frame (sldb-frame-number-at-point)))
+    (slime-eval-async `(swank:sldb-step ,frame) nil (lambda ()))))
             
 (slime-define-keys sldb-mode-map 
   ("v"    'sldb-show-source)
@@ -3604,6 +3611,7 @@
   ("l"    'sldb-list-locals)
   ("t"    'sldb-toggle-details)
   ("c"    'sldb-continue)
+  ("s"    'sldb-step)
   ("a"    'sldb-abort)
   ("q"    'sldb-quit)
   (":"    'slime-interactive-eval))





More information about the slime-cvs mailing list