Use these functions to interact with documents open in RStudio.
insertText(location = NULL, text = NULL, id = NULL)
modifyRange(location = NULL, text = NULL, id = NULL)
setDocumentContents(text, id = NULL)
setCursorPosition(position, id = NULL)
setSelectionRanges(ranges, id = NULL)
documentId(allowConsole = TRUE)
documentPath(id = NULL)
documentSave(id = NULL)
documentNew( text, type = c("r", "rmarkdown", "sql"), position = document_position(0, 0), execute = FALSE )
documentClose(id = NULL, save = TRUE)
An object specifying the positions, or ranges, wherein text should be inserted. See Details for more information.
A character vector, indicating what text should be inserted at
each aforementioned range. This should either be length one (in which case,
this text is applied to each range specified); otherwise, it should be the
same length as the
The document id. When
NULL or blank, the requested operation
will apply to the currently open, or last focused, RStudio document.
The cursor position, typically created through
A list of one or more ranges, typically created
Allow the pseudo-id
#console to be returned, if the R
console is currently focused? Set this to
FALSE if you'd always like to
target the currently-active or last-active editor in the Source pane.
The type of document to be created.
Should the code be executed after the document is created?
Whether to commit unsaved changes to the document before closing it.
To operate on the current selection in a document, call
with only a text argument, e.g.
insertText("# Hello\n") insertText(text = "# Hello\n")
Otherwise, specify a (list of) positions or ranges, as in:
# insert text at the start of the document insertText(c(1, 1), "# Hello\n")
# insert text at the end of the document insertText(Inf, "# Hello\n")
# comment out the first 5 rows pos <- Map(c, 1:5, 1) insertText(pos, "# ")
# uncomment the first 5 rows, undoing the previous action rng <- Map(c, Map(c, 1:5, 1), Map(c, 1:5, 3)) modifyRange(rng, "")
modifyRange is a synonym for
insertText, but makes its intent
clearer when working with ranges, as performing text insertion with a range
will replace the text previously existing in that range with new text. For
clarity, prefer using
insertText when working with
modifyRange when working with
documentClose accepts an ID of an open document rather than a path.
You can retrieve the ID of the active document using the
Closing is always done non-interactively; that is, no prompts are given to
the user. If the user has made changes to the document but not saved them,
save parameter governs the behavior: when
unsaved changes are committed, and when
FALSE they are discarded.