Index: slime/ChangeLog diff -u slime/ChangeLog:1.1291 slime/ChangeLog:1.1293 --- slime/ChangeLog:1.1291 Sun Feb 17 07:28:27 2008 +++ slime/ChangeLog Wed Feb 20 17:12:37 2008 @@ -1,3 +1,41 @@ +2008-02-20 Helmut Eller heller@common-lisp.net + + Better factorization for M-. and xref commands. + + * slime.el (slime-xref): Renamed from slime-definition. + (slime-location, slime-location-p): New ADT def. + (slime-xref-has-location-p, slime-analyze-xrefs): New functions. + This work used to be done on the Lisp side. + (slime-pop-to-location): New function. + (slime-edit-definition, slime-edit-definition-cont): Simplified. + (slime-find-definitions): New function. + (slime-goto-definition, slime-goto-definition-other-window) + (slime-pop-to-other-window, slime-show-definitions): Deleted. + (slime-insert-xrefs): Simplified. + (slime-insert-xref-location): Deleted. No need to show the filename + twice. + + * swank.lisp (find-definitions-for-emacs, xref): Use common + representation for "definitions" and "xrefs". + (xref>elisp): New helper. + (group-xrefs, alistify, parition, location-position<, xref-position) + (xref-buffer, location-valid-p): Deleted. This work is now done on + the Emacs side. + +2008-02-20 Helmut Eller heller@common-lisp.net + + Emit a warning if the SWANK package already exists. + + * swank-loader.lisp (init): Issue a warning when SWANK will not be + reloaded. + +2008-02-18 Helmut Eller heller@common-lisp.net + + Minor cleanups for inspector code. + + * swank.lisp (inspector-content, inspect-list-aux): Slight + cleanups. + 2008-02-17 Marco Baringer mb@bese.it
* swank.asd: Update for recent changes to swank-loader.lisp, we Index: slime/contrib/ChangeLog diff -u slime/contrib/ChangeLog:1.92 slime/contrib/ChangeLog:1.93 --- slime/contrib/ChangeLog:1.92 Fri Feb 15 12:35:19 2008 +++ slime/contrib/ChangeLog Wed Feb 20 17:05:24 2008 @@ -1,3 +1,12 @@ +2008-02-18 Helmut Eller heller@common-lisp.net + + Update Kawa backend to the changed inspector protocol. + + * swank-kawa.scm (inspect-object): Return a list (content len + start end). + (<inspector-state>): New field: content. + (content-range, subseq): New functions. + 2008-02-15 Matthias Koeppe mkoeppe@mail.math.uni-magdeburg.de
* slime-presentations.el (slime-previous-presentation)
mbaringer@common-lisp.net (Marco Baringer) writes:
Index: slime/ChangeLog diff -u slime/ChangeLog:1.1291 slime/ChangeLog:1.1293 --- slime/ChangeLog:1.1291 Sun Feb 17 07:28:27 2008 +++ slime/ChangeLog Wed Feb 20 17:12:37 2008 @@ -1,3 +1,41 @@ +2008-02-20 Helmut Eller heller@common-lisp.net
- Better factorization for M-. and xref commands.
- slime.el (slime-xref): Renamed from slime-definition.
- (slime-location, slime-location-p): New ADT def.
- (slime-xref-has-location-p, slime-analyze-xrefs): New functions.
- This work used to be done on the Lisp side.
- (slime-pop-to-location): New function.
- (slime-edit-definition, slime-edit-definition-cont): Simplified.
- (slime-find-definitions): New function.
- (slime-goto-definition, slime-goto-definition-other-window)
- (slime-pop-to-other-window, slime-show-definitions): Deleted.
- (slime-insert-xrefs): Simplified.
- (slime-insert-xref-location): Deleted. No need to show the filename
- twice.
Nice work! Do you mind the following patch? In the xref buffer, it'll make the source of definitions that came from interactively defining (i.e. C-c C-c) more explicit.
It'll display them as
#<buffer foo.lisp> (DEFMETHOD QUUX T T)
instead of
foo.lisp (DEFMETHOD QUUX T T)
I consider it to be useful to directly see that some definition was done interactively, especially when working with a long-living image. (ATM you can only deduce this from the fact that definitions from files most likely result in absolute paths.)
-T.
Index: slime.el =================================================================== RCS file: /project/slime/cvsroot/slime/slime.el,v retrieving revision 1.906 diff -u -r1.906 slime.el --- slime.el 20 Feb 2008 22:12:37 -0000 1.906 +++ slime.el 21 Feb 2008 11:37:38 -0000 @@ -5189,11 +5189,19 @@ (slime-alistify xrefs (lambda (x) (if (slime-xref-has-location-p x) - (cadr - (slime-location.buffer (slime-xref.location x))) + (slime-location-to-string (slime-xref.location x)) "Error")) #'equal)))
+(defun slime-location-to-string (location) + (destructure-case (slime-location.buffer location) + ((:file filename) filename) + ((:buffer bufname) + (let ((buffer (get-buffer bufname))) + (if buffer + (format "%S" buffer) ; "#<buffer foo.lisp>" + (format "%s (previously existing buffer)" bufname)))))) + (defun slime-pop-to-location (location &optional where) (ecase where ((nil)
* Tobias C. Rittweiler [2008-02-21 12:49+0100] writes:
Nice work! Do you mind the following patch? In the xref buffer, it'll make the source of definitions that came from interactively defining (i.e. C-c C-c) more explicit.
I don't mind. In fact it is already in CVS, but your log entry from 2008-02-21 seems to refer to something else.
Helmut.
Helmut Eller heller@common-lisp.net writes:
- Tobias C. Rittweiler [2008-02-21 12:49+0100] writes:
Nice work! Do you mind the following patch? In the xref buffer, it'll make the source of definitions that came from interactively defining (i.e. C-c C-c) more explicit.
I don't mind. In fact it is already in CVS, but your log entry from 2008-02-21 seems to refer to something else.
Arghs! That wasn't by intention. I just documentated the change in ChangeLog restrospectively. (This isn't so bad, since passing the -D flag with the relevant date to CVS commands will do the right thing wrt. slime.el.)
-T.