Skip to content

Commit 3ff2262

Browse files
Merge pull request #301 from lorenzwalthert/devel
- improve instructions
2 parents c25cb81 + 7c67aac commit 3ff2262

File tree

5 files changed

+37
-14
lines changed

5 files changed

+37
-14
lines changed

API

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ path_pre_commit_exec(check_if_exists = TRUE)
1313
path_precommit_exec(check_if_exists = TRUE)
1414
roxygen_assert_additional_dependencies()
1515
roxygenize_with_cache(key, dirs)
16-
snippet_generate(snippet, root = here::here())
16+
snippet_generate(snippet, open = rstudioapi::isAvailable(), root = here::here())
1717
uninstall_precommit(scope = "repo", ask = "user", root = here::here())
1818
update_precommit()
1919
use_precommit(config_source = getOption("precommit.config_source"), force = FALSE, legacy_hooks = "forbid", open = rstudioapi::isAvailable(), install_hooks = TRUE, root = here::here())

R/roxygen2.R

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,9 @@ roxygen_assert_additional_dependencies <- function() {
115115
- tidyr
116116
- dplyr\n\n",
117117
"Call ",
118-
"`precommit::snippet_generate('additional-deps-roxygenize')`",
119-
"and paste the ",
118+
"`precommit::snippet_generate('additional-deps-roxygenize')` ",
119+
"(requires the dev version of {precommit}, install with with ",
120+
"`remotes::install_github('lorenzwalthert/precommit')` and paste the ",
120121
"output into the file `.pre-commit-config.yaml`. This requires precommit",
121122
" > 0.1.3 and assumes you declared all dependencies in `DESCRIPTION`.",
122123
"\n\nContext: https://github.com/lorenzwalthert/precommit/issues/243",

R/setup.R

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -103,18 +103,28 @@ upstream_repo_url_is_outdated <- function() {
103103
#' `.pre-commit-config.yaml` for the additional dependencies required by
104104
#' roxygen2.
105105
#' @param snippet Name of the snippet.
106+
#' @param open Whether or not to open the .pre-commit-config.yaml. The default
107+
#' is `TRUE` when working in RStudio. Otherwise, we recommend manually opening
108+
#' the file.
106109
#' @inheritParams fallback_doc
107110
#' @export
108-
snippet_generate <- function(snippet = "", root = here::here()) {
111+
snippet_generate <- function(snippet = "",
112+
open = rstudioapi::isAvailable(),
113+
root = here::here()) {
109114
rlang::arg_match(snippet, c("additional-deps-roxygenize"))
110115
if (snippet == "additional-deps-roxygenize") {
111-
rlang::inform(
112-
"Generating snippet using installed versions of all dependencies.\n"
113-
)
116+
rlang::inform(paste(
117+
"Generating snippet using CRAN versions. If you need another source,",
118+
"specify with syntax that `renv::install()` understands (see examples in",
119+
"help file).",
120+
"\n"
121+
))
114122
deps <- desc::desc_get_deps()
115123
deps <- deps[order(deps$package), ]
116124
snippet_generate_impl_additional_deps_roxygenize(deps$package) %>%
117125
cat(sep = "")
126+
cat("\n")
127+
cli::cli_ul("Copy the above into `.pre-commit-config.yaml`.")
118128
remote_deps <- rlang::with_handlers(
119129
desc::desc_get_field("Remotes"),
120130
error = function(e) character()
@@ -134,16 +144,20 @@ You need in your `.pre-commit-config.yaml`
134144
135145
additional_dependencies:
136146
- tidyverse/tidyr@2fd80d5
137-
"
147+
148+
"
138149
))
139150
}
140151
}
152+
if (open) {
153+
precommit::open_config(root)
154+
}
141155
}
142156

143-
snippet_generate_impl_additional_deps_roxygenize <- function(packages) {
157+
snippet_generate_impl_additional_deps_roxygenize <- function(packages, with_version = FALSE) {
144158
out <- paste0(
145-
" - ", packages, "@",
146-
purrr::map_chr(packages, ~ as.character(packageVersion(.x))), "\n",
159+
" - ", packages, if (with_version) "@",
160+
if (with_version) purrr::map_chr(packages, ~ as.character(packageVersion(.x))), "\n",
147161
collapse = ""
148162
) %>%
149163
sort()

man/snippet_generate.Rd

Lines changed: 9 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/testthat/test-setup.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ test_that("snippet generation works", {
66
NA
77
)
88
expect_match(
9-
out, " - id: roxygenize\n.* - styler@.+\n - testthat@.+$",
9+
out, " - id: roxygenize\n.* - styler\n - testthat\n$",
1010
)
1111
desc::desc_set("Remotes", "r-lib/styler")
1212
expect_warning(
1313
out <- capture_output(snippet_generate("additional-deps-roxygenize")),
1414
"you have remote dependencies "
1515
)
1616
expect_match(
17-
out, " - id: roxygenize\n.* - styler@.+\n - testthat@.+$",
17+
out, " - id: roxygenize\n.* - styler\n - testthat\n$",
1818
)
1919
})

0 commit comments

Comments
 (0)