I don't know enough about emacs internals to explain why, but on my "GNU Emacs 21.2.1 (i386-debian-linux-gnu, X toolkit, Xaw3d scroll bars) of 2002-03-22 on raven, modified by Debian", I need the attached patch to make slime-goto-next-xref actually move the cursor in the xref buffer: without it, I never get past the first xref.
Does it work for other people? I notice that there's no keybinding for slime-goto-next-xref or slime-next-location which usually calls it, so I could understand if it hadn't been tested. Or then again, maybe my setup is weird. Anyone want to take a stab at explaining?
Two other points, seeing as I'm here -
- pretty(ish) picture of SLIME building an ASDF system, via URL:http://ww.telent.net/diary/2003/12/#11.16680.
- we have a problem with source path parsing which causes slime to be unable to compile Marty Hall's Memoization package. I've just checked in the relevant function as b0rk.lisp: try C-c C-k on this and (at least in SBCL) you get
READER-ERROR at 1120 (line 28, column 36) on #<FILE-STREAM for "file "/home/dan/src/cl.net/slime/b0rk.lisp"" {9BD6389}>: unmatched close parenthesis
which is clearly not the case. I suspect #' is confusing it, but I'm going to bed now anyway
Enjoy
Index: slime.el =================================================================== RCS file: /project/slime/cvsroot/slime/slime.el,v retrieving revision 1.139 diff -u -w -r1.139 slime.el --- slime.el 11 Dec 2003 04:57:33 -0000 1.139 +++ slime.el 11 Dec 2003 06:12:07 -0000 @@ -3331,9 +3331,10 @@ (defun slime-goto-next-xref () "Goto the next cross-reference location." (let ((location (with-current-buffer (slime-xref-buffer) - (display-buffer (current-buffer) t) - (goto-char (next-single-char-property-change - (point) 'slime-location)) + (let ((w (display-buffer (current-buffer) t))) + (goto-char (1+ (next-single-char-property-change + (point) 'slime-location))) + (set-window-point w (point))) (cond ((eobp) (message "No more xrefs.") nil)
-dan
Daniel Barlow dan@telent.net writes:
Does it work for other people? I notice that there's no keybinding for slime-goto-next-xref or slime-next-location which usually calls it, so I could understand if it hadn't been tested. Or then again, maybe my setup is weird. Anyone want to take a stab at explaining?
The patch looks good. slime-next-location should be bound C-M-., but slime-goto-next-xref didn't update window point.
Two other points, seeing as I'm here -
- pretty(ish) picture of SLIME building an ASDF system, via
Nice work!
Helmut Eller e9626484@stud3.tuwien.ac.at writes:
The patch looks good. slime-next-location should be bound C-M-., but slime-goto-next-xref didn't update window point.
Ah. My window manager (sawfish) eats that chord, which is why I hadn't seen it. I'll commit that change, then.
(Why am I working on this? No, I'm not currently adding XREF support for SBCL, neat though that would be. But the XREF buffer seems to be kind of handy for storing other locations, and unlike the compiler notes stuff it can store data for multiple files at once - so it's a good candidate for keeping compiler error messages when a complete system is compiled)
-dan