Matthias Koeppe mkoeppe+slime@mail.math.uni-magdeburg.de writes:
Luke Gorrie luke@synap.se writes:
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.
Sorry, I don't have time to work on that. I copied the code from Emacs exactly because I wanted the _same_ behavior as Emacs.
No worries. I agree that the behaviour is good but I think we can do this more clearly than Emacs does.
The tricky part seems to be that they first change the original window, then split, then try to put the original window back the way it was by hand. I think it's simpler to split first and then only change the new window, like this:
(defun slime-goto-definition-other-window (definition) (slime-pop-to-other-window) (slime-goto-source-location (slime-definition.location definition)) (switch-to-buffer (current-buffer)))
(defun slime-pop-to-other-window () "Pop to the other window, but not to any particular buffer." (pop-to-buffer (current-buffer) t))
I made this change and then committed. Let me know if I mucked up the behaviour somehow.
Cheers, Luke