Nothing
test_that("spaces_inside_linter skips allowed usages", {
linter <- spaces_inside_linter()
expect_lint("blah", NULL, linter)
expect_lint("print(blah)", NULL, linter)
expect_lint("base::print(blah)", NULL, linter)
expect_lint("a[, ]", NULL, linter)
expect_lint("a[1]", NULL, linter)
expect_lint("fun(\na[1]\n )", NULL, linter)
expect_lint("a(, )", NULL, linter)
expect_lint("a(,)", NULL, linter)
expect_lint("a(1)", NULL, linter)
expect_lint('"a( 1 )"', NULL, linter)
# trailing comments are OK (#636)
expect_lint(
trim_some("
or( #code
x, y
)
"),
NULL,
linter
)
expect_lint(
trim_some("
fun( # this is another comment
a = 42, # because 42 is always the answer
b = Inf
)
"),
NULL,
linter
)
})
test_that("spaces_inside_linter blocks diallowed usages", {
linter <- spaces_inside_linter()
expect_lint(
"a[1 ]",
list(
message = "Do not place spaces before square brackets",
line_number = 1L,
column_number = 4L,
type = "style"
),
linter
)
expect_lint(
"a[[1 ]]",
list(
message = "Do not place spaces before square brackets",
line_number = 1L,
column_number = 5L,
type = "style"
),
linter
)
expect_lint(
"\n\na[ 1]",
list(
message = "Do not place spaces after square brackets",
line_number = 3L,
column_number = 3L,
type = "style"
),
linter
)
expect_lint(
"a[ 1 ]",
list(
list(
message = "Do not place spaces after square brackets",
line_number = 1L,
column_number = 3L,
type = "style"
),
list(
message = "Do not place spaces before square brackets",
line_number = 1L,
column_number = 5L,
type = "style"
)
),
linter
)
expect_lint(
"a(1 )",
list(
message = "Do not place spaces before parentheses",
line_number = 1L,
column_number = 4L,
type = "style"
),
linter
)
expect_lint(
"a[[ 1]]",
list(
message = "Do not place spaces after square brackets",
line_number = 1L,
column_number = 4L,
type = "style"
),
linter
)
expect_lint(
"a( 1)",
list(
message = "Do not place spaces after parentheses",
line_number = 1L,
column_number = 3L,
type = "style"
),
linter
)
expect_lint(
"x[[ 1L ]]",
list(
list(
message = "Do not place spaces after square brackets",
line_number = 1L,
column_number = 4L,
type = "style"
),
list(
message = "Do not place spaces before square brackets",
line_number = 1L,
column_number = 7L,
type = "style"
)
),
linter
)
expect_lint(
"a( 1 )",
list(
list(
message = "Do not place spaces after parentheses",
line_number = 1L,
column_number = 3L,
type = "style"
),
list(
message = "Do not place spaces before parentheses",
line_number = 1L,
column_number = 5L,
type = "style"
)
),
linter
)
# range covers all whitespace
expect_lint(
"a( blah )",
list(
list(
message = "Do not place spaces after parentheses",
line_number = 1L,
column_number = 3L,
ranges = list(c(3L, 4L)),
type = "style"
),
list(
message = "Do not place spaces before parentheses",
line_number = 1L,
column_number = 9L,
ranges = list(c(9L, 10L)),
type = "style"
)
),
linter
)
})
test_that("multi-line expressions have good markers", {
expect_lint(
trim_some("
( x |
y )
"),
list(
list(line_number = 1L, ranges = list(c(2L, 2L)), message = "Do not place spaces after parentheses"),
list(line_number = 2L, ranges = list(c(4L, 4L)), message = "Do not place spaces before parentheses")
),
spaces_inside_linter()
)
})
test_that("spaces_inside_linter blocks disallowed usages with a pipe", {
skip_if_not_r_version("4.1.0")
linter <- spaces_inside_linter()
expect_lint(
"letters[1:3] %>% paste0( )",
list(
list(
message = "Do not place spaces after parentheses",
line_number = 1L,
column_number = 25L,
type = "style"
),
list(
message = "Do not place spaces before parentheses",
line_number = 1L,
column_number = 25L,
type = "style"
)
),
linter
)
expect_lint(
"letters[1:3] |> paste0( )",
list(
list(
message = "Do not place spaces after parentheses",
line_number = 1L,
column_number = 24L,
type = "style"
),
list(
message = "Do not place spaces before parentheses",
line_number = 1L,
column_number = 24L,
type = "style"
)
),
linter
)
})
test_that("terminal missing keyword arguments are OK", {
expect_lint("alist(missing_arg = )", NULL, spaces_inside_linter())
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.