Use these functions to interact with documents open in RStudio.
Creates a new document in RStudio
Closes a document currently open in RStudio.
insertText(location, text, id = NULL) modifyRange(location, text, id = NULL) setDocumentContents(text, id = NULL) setCursorPosition(position, id = NULL) setSelectionRanges(ranges, id = NULL) documentSave(id = NULL) documentSaveAll() documentNew( text, type = c("r", "rmarkdown", "sql"), position = document_position(0, 0), execute = FALSE ) documentClose(id = NULL, save = TRUE)
location | An object specifying the positions, or ranges, wherein text should be inserted. See Details for more information. |
---|---|
text | 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 |
id | The document id. When |
position | The cursor position, typically created through
|
ranges | A list of one or more ranges, typically created
through |
type | The type of document to be created. |
execute | Should the code be executed after the document is created? |
save | Whether to commit unsaved changes to the document before closing it. |
location
should be a (list of) document_position
or
document_range
object(s), or numeric vectors coercable to
such objects.
To operate on the current selection in a document, call insertText()
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
document_position
s, and modifyRange
when working with
document_range
s.
documentClose
accepts an ID of an open document rather than a path.
You can get the ID of an open document from the
getSourceEditorContext
function, among others.
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,
then the save
parameter governs the behavior: when TRUE
,
unsaved changes are committed, and when FALSE
they are discarded.
The insertText
, modifyRange
and setDocumentContents
functions were added with version 0.99.796 of RStudio.
The setCursorPosition
and setSelectionRanges
functions were
added with version 0.99.1111 of RStudio.
The documentSave
and documentSaveAll
functions were added
with version 1.1.287 of RStudio.
The documentNew
function was introduced in RStudio 1.2.640
The documentClose
function was introduced in RStudio 1.2.1255