X-Git-Url: http://christophe.rhodes.io/gitweb/?p=swankr.git;a=blobdiff_plain;f=swank-media.R;h=59f7d772e9c2e9e67f664b522c180981fa84ef78;hp=6e81dbbe82399b7704bcb43a6aaf86c1126d5152;hb=22705b4ae5466d59d3312a1cda4c0cb5e1ca52ea;hpb=3cf3720a2c0a72d6f722a9b990891a27301fadcf diff --git a/swank-media.R b/swank-media.R index 6e81dbb..59f7d77 100644 --- a/swank-media.R +++ b/swank-media.R @@ -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