[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