Learn R Programming

SciViews (version 0.8-8)

guiDDEInstall: install a DDE server (Windows only) for external IDE/code editor

Description

These functions install and manage a DDE server to return context-sensitive calltips or completion lists to external IDE/code editors under Windows.

Usage

guiDDEInstall()
guiCallTip(code, file = NULL, onlyargs = FALSE, maxwidth = 60, location = FALSE)
guiComplete(code, file = NULL, givetype = FALSE, fieldsep = "|")

Arguments

code
A piece of R code (in a character string) to analyze
file
A file where to return the result ("", or NULL for none. You can use "clipboard" to send the result to the clipboard under Windows only; it raises an error currently on other platforms)
onlyargs
Do we return the whole calltip or only the function arguments?
maxwidth
Reformat the calltip to maxwith (use 0 for not reformatting it)
givetype
Return also the type of each object in the completion list (possibly to use set a different icon in the list displayed by the external program)
fieldsep
The separator to use between the item and its type in the list

Value

  • These functions should be used to interact with an external program. Their result is returned invisibly for debugging purposes and is not intended to be use in R.

See Also

CallTip, Complete

Examples

Run this code
## 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