## DDE exchange protocol is available ONLY under Windows!
## Also, this cannot be run by examples() but should be OK when pasted
## into an interactive R session with the tcltk package loaded
## Here is how you can test these features under Windows
options(use.DDE = TRUE)
library(svIDE) # This should automatically start the
# DDE server named 'TclEval SciViewsR', according to the option set
# Get some data in the user workspace
data(trees)
a <- 1
b <- "some text in the first instance of R"
#######################################################
# To test these functions in an external program, we need now
# to start a second instance of R. In this second instance, enter:
library(tcltk)
.Tcl("package require dde")
.Tcl("dde services TclEval {}")
# You should get 'TclEval SciViewsR' in the list
# if the server in the first instance is running
# Now, request a calltip for the function 'ls'
# This is done in two steps:
# 1) Execute the command 'guiCallTip' with this code chunk as argument
.Tcl("dde execute TclEval SciViewsR {guiCallTip {res <- ls(}}")
# 2) Retrieve the calltip from the variable SciViewsR_CallTip
.Tcl("dde request TclEval SciViewsR SciViewsR_CallTip")
# Another way to trigger DDE commands (for programs that do not support
# DDE is to use 'execdde.exe' of the tcltk2 package (see ?tk2dde)
# It is also possible to copy the calltip to a file, or to the clipboard
# by specifying it after the command (also the two additional arguments
# have their default values changed)
.Tcl("dde execute TclEval SciViewsR {guiCallTip {library(} clipboard TRUE 40 TRUE}")
# Look at what is in the clipboard
cat(readClipboard(), "\n")
# The process is similar to get completion lists
.Tcl("dde execute TclEval SciViewsR {guiComplete {iris$}}")
.Tcl("dde request TclEval SciViewsR SciViewsR_Complete")
# Get the list of variables in the user workspace of the first R instance
# into the clipboard (use also the other arguments to get the type of objects)
.Tcl("dde execute TclEval SciViewsR {guiComplete {} clipboard TRUE { - }}")
# Look at what is in the clipboard
cat(readClipboard(), "\n")
Run the code above in your browser using DataLab