I had a desire for a slime-pprint-eval-region and cobbled together the following patch. It's bound to C-c C-f and allows one to highlight a region and then evaluate it. This is helpful in particular when dealing with forms with reader macros in them that aren't properly read by emacs' backward-sexp function.
Any interest in seeing something like this in the canonical slime.el?
thanks,
Cryus
diff --git a/slime.el b/slime.el
index 3ef2b41..bfb4242 100644
--- a/slime.el
+++ b/slime.el
@@ -531,6 +531,7 @@ information."
(defvar slime-prefix-bindings
'(("\C-r" slime-eval-region)
+ ("\C-f" slime-pprint-eval-region)
(":" slime-interactive-eval)
("\C-e" slime-interactive-eval)
("E" slime-edit-value)
@@ -4297,6 +4298,13 @@ Use `slime-re-evaluate-defvar' if the from starts with '(defvar'"
`(swank:interactive-eval-region
,(buffer-substring-no-properties start end))))
+(defun slime-pprint-eval-region (start end)
+ "Evaluate region; pprint the value in a buffer."
+ (interactive "r")
+ (slime-eval-describe
+ `(swank:pprint-eval
+ ,(buffer-substring-no-properties start end))))
+
(defun slime-eval-buffer ()
"Evaluate the current buffer.
The value is printed in the echo area."
@@ -7149,6 +7157,7 @@ is setup, unless the user already set one explicitly."
[ "Eval Last Expression" slime-eval-last-expression ,C ]
[ "Eval And Pretty-Print" slime-pprint-eval-last-expression ,C ]
[ "Eval Region" slime-eval-region ,C ]
+ [ "Eval Region And Pretty-Print" slime-pprint-eval-region ,C ]
[ "Interactive Eval..." slime-interactive-eval ,C ]
[ "Edit Lisp Value..." slime-edit-value ,C ]
[ "Call Defun" slime-call-defun ,C ])