Skip to content

Commit 1c01ac2

Browse files
Allow whitespace after code headers in split_code_headers() (#678)
Co-authored-by: Garrick Aden-Buie <garrick@adenbuie.com>
1 parent 6339fa0 commit 1c01ac2

File tree

3 files changed

+44
-3
lines changed

3 files changed

+44
-3
lines changed

R/staticimports.R

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ is_html_tag <- function(x) {
1919
inherits(x, c("shiny.tag", "shiny.tag.list"))
2020
}
2121

22-
knitr_engine_caption <- function(engine) {
22+
knitr_engine_caption <- function(engine = NULL) {
23+
if (is.null(engine)) {
24+
engine <- "r"
25+
}
26+
2327
switch(
2428
tolower(engine),
2529
"bash" = "Bash",
@@ -60,7 +64,7 @@ split_code_headers <- function(code, prefix = "section") {
6064
code <- str_trim(code, character = "[\r\n]")
6165
code <- strsplit(code, "\n")[[1]]
6266

63-
rgx_header <- "^(#+)([ -]*)(.+?)?\\s*----+$"
67+
rgx_header <- "^\\s*(#+)([ -]*)(.+?)?\\s*----+\\s*$"
6468
headers <- regmatches(code, regexec(rgx_header, code, perl = TRUE))
6569
lines_headers <- which(vapply(headers, length, integer(1)) > 0)
6670

inst/staticexports/split_code_headers.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ split_code_headers <- function(code, prefix = "section") {
77
code <- str_trim(code, character = "[\r\n]")
88
code <- strsplit(code, "\n")[[1]]
99

10-
rgx_header <- "^(#+)([ -]*)(.+?)?\\s*----+$"
10+
rgx_header <- "^(#+)([ -]*)(.+?)?\\s*----+\\s*$"
1111
headers <- regmatches(code, regexec(rgx_header, code, perl = TRUE))
1212
lines_headers <- which(vapply(headers, length, integer(1)) > 0)
1313

tests/testthat/test-staticimports.R

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
test_that("split_code_headers()", {
2+
target <- list(one = "1", two = "2")
3+
4+
# No whitespace after dashes
5+
expect_equal(
6+
split_code_headers(
7+
"# one ----
8+
1
9+
# two ----
10+
2"
11+
),
12+
target
13+
)
14+
15+
16+
# Whitespace after first header
17+
expect_equal(
18+
split_code_headers(
19+
"# one ----
20+
1
21+
# two ----
22+
2"
23+
),
24+
target
25+
)
26+
27+
# Whitespace after subsequent headers
28+
expect_equal(
29+
split_code_headers(
30+
"# one ----
31+
1
32+
# two ----
33+
2"
34+
),
35+
target
36+
)
37+
})

0 commit comments

Comments
 (0)