rstudio / rstudioapi

Safely access RStudio's API (when available)
http://rstudio.github.io/rstudioapi
Other
165 stars 35 forks source link

Automating RStudio (i.e., is it possible to run rstudioapi calls from outside RStudio on macOS?) #288

Open MatthewHeun opened 7 months ago

MatthewHeun commented 7 months ago

I'm looking for a way to integrate RStudio and Hookmark (https://hookproductivity.com) on macOS. Before the switch to Electron, the following Applescript would work:

    tell application "RStudio"
        activate
        cmd "clipr::write_clip( rstudioapi::getActiveDocumentContext()$path)"
    end tell

Now that Applescript is no longer supported by RStudio, is there another way to send rstudioapi (or other) calls to a running instance of RStudio via the command line? Via Javascript? Via another means?

In short, is it possible to automate RStudio from outside RStudio itself?

If there is a better place to post this question, please let me know.

kevinushey commented 7 months ago

IIRC, we added some infrastructure to support this with the older Qt-based builds of RStudio, but that was never ported to the newer Electron builds. Perhaps this is something we could take a look at again in the future?

MatthewHeun commented 7 months ago

IIRC, we added some infrastructure to support this with the older Qt-based builds of RStudio, but that was never ported to the newer Electron builds. Perhaps this is something we could take a look at again in the future?

Thanks! We've been around this block before 🙂. (https://github.com/rstudio/rstudio/issues/3354; https://github.com/electron/electron/issues/4418; https://github.com/rstudio/rstudio/issues/12521)

So maybe consider my question to be a plea for raising the priority for returning Applescript support to the Electron version of RStudio. Unless I'm missing something, there doesn't seem to be a way to automate RStudio on the Mac, which is a real shame. Lots of great things become possible if we can use Applescript to send rstudioapi calls into RStudio from the outside world.

Thanks!