Hello,
What follows is a patch to SLIME-REPL-EMIT which allows a cool hack: inserting images into the REPL. I find it useful when experimenting with graphics-related code. CL code:
(defun insert-image-into-repl (filename) (swank::eval-in-emacs `(progn (slime-repl-emit (lambda () (insert-image (create-image ,filename)) (insert #\Newline))) :ok)) (values))
(SLIME-ENABLE-EVALUATE-IN-EMACS needs to be true to make this work.)
Ariel
---
Index: slime.el =================================================================== RCS file: /project/slime/cvsroot/slime/slime.el,v retrieving revision 1.936 diff -u -r1.936 slime.el --- slime.el 6 Apr 2008 09:58:17 -0000 1.936 +++ slime.el 14 Apr 2008 20:48:17 -0000 @@ -2555,13 +2555,17 @@ (:repl-result (slime-repl-emit-result string)) (t (slime-emit-string string target))))
-(defun slime-repl-emit (string) - ;; insert the string STRING in the output buffer +(defun slime-repl-emit (thing) + "Insert THING into the output buffer if it is a string or, if +it is a function, call it in the right context for insertion." (with-current-buffer (slime-output-buffer) (slime-with-output-end-mark - (slime-insert-propertized '(face slime-repl-output-face - rear-nonsticky (face)) - string) + (etypecase thing + (string + (slime-insert-propertized '(face slime-repl-output-face + rear-nonsticky (face)) + thing)) + (function (funcall thing))) (set-marker slime-output-end (point)) (when (and (= (point) slime-repl-prompt-start-mark) (not (bolp)))