Howdy Matthias,
Matthias Koeppe mkoeppe+slime@mail.math.uni-magdeburg.de writes:
I am sending a little patch that improves the commands slime-edit-definition-other-window and ...-frame. Would someone like to merge it into CVS?
Can you try to rewrite the function below in a hairless way? Often it's possible to do a clearer job than Emacs itself does.
The name could probably be more informative too. Our coding standard (http://www.norvig.com/luv-slides.ps) wisely suggests we be wary of symbol names ending in "-AUX".
+(defun slime-goto-definition-other-window-aux (definition)
- ;; Taken from the Emacs function `find-tag-other-window':
- ;; This hair is to deal with the case where the tag is found in the
- ;; selected window's buffer; without the hair, point is moved in both
- ;; windows. To prevent this, we save the selected window's point before
- ;; doing find-tag-noselect, and restore it after.
- (let ((window-point (window-point (selected-window))))
- (slime-goto-source-location (slime-definition.location
definition))
- (let ((tagbuf (current-buffer))
(tagpoint (point)))
(set-window-point (prog1
(selected-window)
(switch-to-buffer-other-window tagbuf)
;; We have to set this new window's point; it
;; might already have been displaying a
;; different portion of tagbuf, in which case
;; switch-to-buffer-other-window doesn't set
;; the window's point from the buffer.
(set-window-point (selected-window) tagpoint))
window-point))))