Christophe Weblog Wiki Code Publications Music
`swank:describe-function` and `swank:describe-symbol` implementations
[swankr.git] / swank-media.R
1 makeMediaReplResult <- function(value) {
2   UseMethod("makeMediaReplResult")
3 }
4
5 makeMediaReplResult.default <- function(value) {
6   makeReplResult(value)
7 }
8
9 makeMediaReplResult.trellis <- function(value) {
10   filename <- tempfile("swank-media-")
11   png(filename, width=320, height=200)
12   print(value)
13   dev.off()
14   list(quote(`:write-image`), list(list(quote(`:type`), quote(png),
15                                         quote(`:file`), filename)),
16        deparse(value$call, nlines=1))
17 }
18 makeMediaReplResult.ggplot <- function(value) {
19   filename <- tempfile("swank-media-")
20   png(filename, width=320, height=200)
21   print(value)
22   dev.off()
23   list(quote(`:write-image`), list(list(quote(`:type`), quote(png),
24                                         quote(`:file`), filename)),
25        deparse(value$call, nlines=1))
26 }
27
28 makeMediaReplResult.numeric <- function(value) {
29   string <- paste(deparse(value), sep="", collapse="\n")
30   list(quote(`:write-string`), string, quote(`:repl-result`))
31 }
32 makeMediaReplResult.complex <- function(value) {
33   string <- paste(deparse(value), sep="", collapse="\n")
34   list(quote(`:write-string`), string, quote(`:repl-result`))
35 }
36
37 makeMediaReplResult.array <- function(value) {
38   makeMediaReplResult.default(value)
39 }
40 makeMediaReplResult.matrix <- function(value) {
41   makeMediaReplResult.default(value)
42 }
43
44 makeMediaReplResult.help_files_with_topic <- function(value) {
45   string <- helpFilesWithTopicString(value)
46   list(quote(`:popup-buffer`), sprintf("*slime-help(%s)*", attr(value, "topic")),
47        string, quote(`ess-help-mode`))
48 }
49
50 makeReplResultFunction <- makeMediaReplResult