R/insertinstall.R

library(rstudioapi)

#' @describeIn insertinstall Generate an install call from library calls
#' @importFrom rstudioapi getActiveDocumentContext
#' @importFrom rstudioapi primary_selection
#' @importFrom rstudioapi sendToConsole
#' @export
insertInstallExprAddin <- function() {
  doc <- rstudioapi::getActiveDocumentContext()
  sel <- rstudioapi::primary_selection(doc)
  ast <- parse(text = sel$text)
  libs <- unlist(
    lapply(ast, function(lib_call) {
      as.character(lib_call[[2]])
    })
  )
  install_expr <- quote(install.packages())
  install_expr[[2]] <- libs
  rstudioapi::sendToConsole(
    utils::capture.output(
      print(install_expr)
    ),
  execute = FALSE)
}
alandipert/insertinstall documentation built on May 9, 2019, 3:55 a.m.