Christophe Weblog Wiki Code Publications Music
`swank:describe-function` and `swank:describe-symbol` implementations
[swankr.git] / swank-media.R
index 686a6368b1a52647bf0801f4a2b6dd4c4c74963e..12405265e31de9d8285fa128e98d9a68c21838f1 100644 (file)
@@ -15,13 +15,22 @@ makeMediaReplResult.trellis <- function(value) {
                                         quote(`:file`), filename)),
        deparse(value$call, nlines=1))
 }
+makeMediaReplResult.ggplot <- function(value) {
+  filename <- tempfile("swank-media-")
+  png(filename, width=320, height=200)
+  print(value)
+  dev.off()
+  list(quote(`:write-image`), list(list(quote(`:type`), quote(png),
+                                        quote(`:file`), filename)),
+       deparse(value$call, nlines=1))
+}
 
 makeMediaReplResult.numeric <- function(value) {
   string <- paste(deparse(value), sep="", collapse="\n")
   list(quote(`:write-string`), string, quote(`:repl-result`))
 }
 makeMediaReplResult.complex <- function(value) {
-  string <- deparse(value)
+  string <- paste(deparse(value), sep="", collapse="\n")
   list(quote(`:write-string`), string, quote(`:repl-result`))
 }
 
@@ -32,4 +41,10 @@ makeMediaReplResult.matrix <- function(value) {
   makeMediaReplResult.default(value)
 }
 
+makeMediaReplResult.help_files_with_topic <- function(value) {
+  string <- helpFilesWithTopicString(value)
+  list(quote(`:popup-buffer`), sprintf("*slime-help(%s)*", attr(value, "topic")),
+       string, quote(`ess-help-mode`))
+}
+
 makeReplResultFunction <- makeMediaReplResult