Christophe Weblog Wiki Code Publications Music
more srcref frobbing
[swankr.git] / swank-media.R
index 6e81dbbe82399b7704bcb43a6aaf86c1126d5152..59f7d772e9c2e9e67f664b522c180981fa84ef78 100644 (file)
@@ -15,5 +15,38 @@ 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 <- paste(deparse(value), sep="", collapse="\n")
+  list(quote(`:write-string`), string, quote(`:repl-result`))
+}
+
+makeMediaReplResult.array <- function(value) {
+  makeMediaReplResult.default(value)
+}
+makeMediaReplResult.matrix <- function(value) {
+  makeMediaReplResult.default(value)
+}
+
+makeMediaReplResult.help_files_with_topic <- function(value) {
+  output <- capture.output(tools:::Rd2txt(utils:::.getHelpFile(value),
+                                          options=list(underline_titles=FALSE)))
+  string <- paste(output, collapse="\n")
+  list(quote(`:popup-buffer`), sprintf("*slime-help(%s)*", attr(value, "topic")),
+       string, quote(`ess-help-mode`))
+}
 
 makeReplResultFunction <- makeMediaReplResult