I want to add a small function to my RStudio
AddIn which extracts all chunks from an Rmarkdown
document, does some transformation and displays it as new editor window in RStudio
. Basically, that will be a thin wrapper around knitr::purl
. The function will eventually be called via the AddIns interface in RStudio
and should consider the currently opened editor window as input.
What I was wondering though, is how to include a check whether the current editor window shows indeed an RMarkdown
document.
I could use the file extension like this:
if (grepl("\\.Rmd$", rstudioapi::getSourceEditorContext()$path)) {
## Rmarkdown -> do knitr::purl
} else {
## No Rmarkdown -> give a warning
}
But this feels hackish and a new Rmarkdown
document, which is not saved yet (and opened via File -> New File -> RMarkdown...
) will fail this check.
As RStudio
itself does somehow recognize whether a file is meant to be an Rmarkdown
document (creating a file as highlighted will add the Knit
button for example, even if it not saved yet), I was wondering how I would ultimately find out the "file" type of an editor window?
I skimmed through the Admin Guide Appendix hoping to find a function like isRMarkdown
to be called via rstudioApi::executeCommand
but to no avail.
What would be a reliable way to check the file type associated to the current editor window in RStudio
?