[slime-devel] Re: [Patch] Implementation of a macroexpansion stack.

Tobias C. Rittweiler tcr at freebits.de
Sat May 13 13:08:00 UTC 2006


Matthias Koeppe <mkoeppe+slime at mail.math.uni-magdeburg.de> writes:

> "Tobias C. Rittweiler" <tcr at freebits.de> writes:
>
> > Matthias Koeppe <mkoeppe+slime at mail.math.uni-magdeburg.de> writes:
> >
> > > Does undo not work for you in the macroexpansion buffer? [...]
> >
> > 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:

I'm not sure. I actually like the read-only property because it makes
the macroexpansion buffer "special", i.e. not just another arbitrary
buffer with code. YMMV.


> 2006-05-13  Matthias Koeppe  <mkoeppe at 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. 

Is it possible to shadow `undo' buffer-locally?


> --- 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))))))
>  
> [...]

(Personally, I think adding a READ-ONLY-P keyword argument to
SLIME-WITH-OUTPUT-TO-TEMP-BUFFER would be a more elegant [as in
reusable] solution.)

  -T.





More information about the slime-devel mailing list