"Tobias C. Rittweiler" tcr@freebits.de writes:
Matthias Koeppe mkoeppe+slime@mail.math.uni-magdeburg.de writes:
"Tobias C. Rittweiler" tcr@freebits.de writes:
I implemented the macroexpansion stack that I talked about several month ago. With the attached patch, it's possible to press `l' (for "last", like in the inspector) to get to the same content as of the previous macroexpansion buffer, for example, after an in-place expansion.
Does undo not work for you in the macroexpansion buffer? If it does not, it should be fixed.
Well, does it work for you? (Remember, the macroexpansion buffer is read only!)
Well, it works after making the buffer read/write with C-x C-q.
But probably it's better to make the buffer read/write from the beginning:
2006-05-13 Matthias Koeppe mkoeppe@mail.math.uni-magdeburg.de
* slime.el (slime-eval-macroexpand): Make the macro expansion buffer read/write, so that it is possible to `undo' in-place macroexpansions.
--- slime.el.~1.618.~ 2006-04-20 06:38:14.000000000 +0200 +++ slime.el 2006-05-13 14:00:52.000000000 +0200 @@ -7330,7 +7330,12 @@ ("*SLIME macroexpansion*" lisp-mode) package (slime-macroexpansion-minor-mode) (insert expansion) - (font-lock-fontify-buffer)))))) + (font-lock-fontify-buffer)) + ;; Make buffer read-write, so that it is possible to `undo' + ;; in-place macroexpansions. + (with-current-buffer + "*SLIME macroexpansion*" + (setq buffer-read-only nil))))))
(defun slime-eval-macroexpand-inplace (expander) "Substitutes the current sexp at place with its macroexpansion.
I will put this improvement into SLIME CVS unless there are objections.
Cheers,