[slime-devel] Re: More steroids for M-. in CMUCL
Luke Gorrie
luke at bluetail.com
Tue May 4 08:18:33 UTC 2004
This is a post about M-. from Alan Ruttenberg which bounced for
boring mailing list reasons. His idea sounds great to me. When I
did something like this for MCL I used to search from the position
of source the last time the form was compiled, downward, then
upward on the theory they more often than not I was adding to the
file. In the earlier version I used the (defxxx heuristic.
For openmcl I've been thinking that I should record the whole text
(from the source file) of the definition with the function. What
would be ideal would be to do a fuzzy search for the whole text,
along the line of a BLAST alignment in genomics and choose the
best matching position, (or even highlight where your code went in
the case that you refactored :)
Note that M-. and finding the source location for a given PC in
the debugger are implemented in almost the same way in this
scenario. You associate with each PC the bounds of the definition
form relative to the stored text for the function. Then, within
the fuzzy match/alignment of the containing function you fuzzy
match/align the source for the form being evaluated at the PC.
What's holding me back from trying this is having access to a
fuzzy match algorithm. Does anyone know of one? Or have an idea of
how to use some diff variant to get the same effect? Inside emacs
would be ideal but we could also run a shell script on the buffer
to get the match.
Saving all text and doing lots of computation to navigate to
source may seem extravagant to some but it seems to me that the
big bucks are in saving our time.
-Alan
More information about the slime-devel
mailing list