Skip to content

Commit 4e48c47

Browse files
customize lengths_linter for data.table usage (#6100)
customize lengths_linter for data.table usage comment
1 parent 05c1d6c commit 4e48c47

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

.ci/linters/dt_lengths_linter.R

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# This is lintr::lengths_linter(), but including 'vapply_1i()' which is more common internally in data.table
2+
# alternatively, this could be defined with something like
3+
# dt_lengths_linter <- lintr::lengths_linter()
4+
# local({ # to remove 'e'
5+
# e <- environment(dt_lengths_linter)
6+
# e$function_names <- c(evalq(function_names, e), "vapply_1i")
7+
# })
8+
# but that feels more fragile than this.
9+
dt_lengths_linter <- lintr::make_linter_from_function_xpath(
10+
function_names = c("sapply", "vapply", "vapply_1i", "map_int", "map_dbl"),
11+
xpath = "parent::expr/parent::expr[expr/SYMBOL[text() = 'length']]",
12+
lint_message = "Use lengths() to find the length of each element in a list."
13+
)

0 commit comments

Comments
 (0)