diff --git a/R/parseRfolder.R b/R/parseRfolder.R index b79bb0d..e6b5b29 100644 --- a/R/parseRfolder.R +++ b/R/parseRfolder.R @@ -44,5 +44,6 @@ parse_r_folder <- function(rpath, rfilepattern = default_r_file_pattern(), env = env ) - do.call(c, res) + res <- do.call(c, res) + collapse_underscore_caller(res) } diff --git a/R/parseRscript.R b/R/parseRscript.R index d09d627..3bc1053 100644 --- a/R/parseRscript.R +++ b/R/parseRscript.R @@ -1,4 +1,12 @@ - +collapse_underscore_caller <- function(res) { + if (any(names(res) == "_")) { + body <- do.call(rbind, res[names(res) == "_"]) + res <- res[ names(res) != "_" ] + res$`_` <- body + rownames(res$`_`) <- NULL + } + res +} #' Find all function calls in an R script #' @@ -47,12 +55,7 @@ parse_r_script <- function(rfile, include_base = FALSE, env = NULL) { res <- res[ names(res) != "_" | vapply(res, NROW, 1L) != 0 ] ## Collapse body into a single "caller" - if (any(names(res) == "_")) { - body <- do.call(rbind, res[names(res) == "_"]) - res <- res[ names(res) != "_" ] - res$`_` <- body - rownames(res$`_`) <- NULL - } + res <- collapse_underscore_caller(res) res }