[slime-devel] source location snippet searching

Taylor R. Campbell campbell at mumble.net
Thu Mar 30 23:59:55 UTC 2006

If the Lisp system provides a snippet hint for a source location,
`slime-goto-source-location' uses `slime-isearch' to find the nearest
occurrence of it in order to narrow down the location better, and
subsequently uses `slime-search-call-site' to narrow it down even
further.  However, the search may send the point off into some random
place in the file, even in a completely different defun, but then
`slime-search-call-site' narrows itself to whichever defun it's on and
searches *there*, so if `slime-isearch' got lost then the whole thing
will get lost.

Is there a reason that `slime-goto-source-location' does not narrow to
the defun before running `slime-isearch'?  The above problem is solved
by this simple patch:

Index: slime.el
RCS file: /project/slime/cvsroot/slime/slime.el,v
retrieving revision 1.605
diff -u -r1.605 slime.el
--- slime.el	26 Mar 2006 03:51:56 -0000	1.605
+++ slime.el	30 Mar 2006 23:51:34 -0000
@@ -5043,7 +5043,9 @@
      (slime-goto-location-buffer buffer)
      (slime-goto-location-position position)
      (when-let (snippet (getf hints :snippet))
-       (slime-isearch snippet))
+       (save-restriction
+         (narrow-to-defun)
+         (slime-isearch snippet)))
      (when-let (fname (getf hints :call-site))
        (slime-search-call-site fname)))
     ((:error message)

More information about the slime-devel mailing list