From 0ac84e3fc4a28b7f086335d5a6768fd3b08c6882 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Tue, 3 Jun 2025 17:55:40 +0200 Subject: [PATCH] `as_job = auto` now does not prevent rendering in positron context --- DESCRIPTION | 2 +- NEWS.md | 2 ++ R/render.R | 7 ++++++- R/utils.R | 8 ++++++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index c22cbfec..45b0516e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: quarto Title: R Interface to 'Quarto' Markdown Publishing System -Version: 1.4.4.9008 +Version: 1.4.4.9009 Authors@R: c( person("JJ", "Allaire", , "jj@posit.co", role = "aut", comment = c(ORCID = "0000-0003-0174-9868")), diff --git a/NEWS.md b/NEWS.md index 3da14390..67437fdb 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,7 @@ # quarto (development version) +- `quarto_render()` now correctly set `as_job` when not inside RStudio IDE and required **rstudioapi** functions are not available (#203). + - Add several new wrapper function (thanks, @parmsam, #192): - `quarto_list_extensions()` to list installed extensions using `quarto list extensions` - `quarto_remove_extension()` to remove an installed extension using `quarto remove extensions` diff --git a/R/render.R b/R/render.R index 6dd8bd36..50162eae 100644 --- a/R/render.R +++ b/R/render.R @@ -106,7 +106,12 @@ quarto_render <- function( } # render as job if requested and running within rstudio - if (as_job && rstudioapi::isAvailable()) { + if ( + as_job && + rstudioapi::isAvailable() && + rstudioapi::hasFun("jobRunScript") && + in_rstudio() + ) { message( "Rendering project as background job (use as_job = FALSE to override)" ) diff --git a/R/utils.R b/R/utils.R index 43d1a772..e407013c 100644 --- a/R/utils.R +++ b/R/utils.R @@ -25,3 +25,11 @@ merge_list <- function(x, y) { `%||%` <- function(x, y) { if (is_null(x)) y else x } + +in_positron <- function() { + identical(Sys.getenv("POSITRON"), "1") +} + +in_rstudio <- function() { + identical(Sys.getenv("RSTUDIO"), "1") +}