Skip to contents
-
T_and_F_symbol_linter()
T
and F
symbol linter
-
absolute_path_linter()
- Absolute path linter
-
any_duplicated_linter()
- Require usage of
anyDuplicated(x) > 0
over any(duplicated(x))
-
any_is_na_linter()
- Require usage of
anyNA(x)
over any(is.na(x))
-
assignment_linter()
- Assignment linter
-
backport_linter()
- Backport linter
-
boolean_arithmetic_linter()
- Require usage of boolean operators over equivalent arithmetic
-
brace_linter()
- Brace linter
-
class_equals_linter()
- Block comparison of class with
==
-
commas_linter()
- Commas linter
-
commented_code_linter()
- Commented code linter
-
comparison_negation_linter()
- Block usages like !(x == y) where a direct relational operator is appropriate
-
condition_call_linter()
- Recommend usage of
call. = FALSE
in conditions
-
condition_message_linter()
- Block usage of
paste()
and paste0()
with messaging functions using ...
-
conjunct_test_linter()
- Force
&&
conditions to be written separately where appropriate
-
consecutive_assertion_linter()
- Force consecutive calls to assertions into just one when possible
-
consecutive_mutate_linter()
- Require consecutive calls to mutate() to be combined when possible
-
cyclocomp_linter()
- Cyclomatic complexity linter
-
duplicate_argument_linter()
- Duplicate argument linter
-
empty_assignment_linter()
- Block assignment of
{}
-
equals_na_linter()
- Equality check with NA linter
-
expect_comparison_linter()
- Require usage of
expect_gt(x, y)
over expect_true(x > y)
(and similar)
-
expect_identical_linter()
- Require usage of
expect_identical(x, y)
where appropriate
-
expect_length_linter()
- Require usage of
expect_length(x, n)
over expect_equal(length(x), n)
-
expect_named_linter()
- Require usage of
expect_named(x, n)
over expect_equal(names(x), n)
-
expect_not_linter()
- Require usage of
expect_false(x)
over expect_true(!x)
-
expect_null_linter()
- Require usage of
expect_null
for checking NULL
-
expect_s3_class_linter()
- Require usage of
expect_s3_class()
-
expect_s4_class_linter()
- Require usage of
expect_s4_class(x, k)
over expect_true(is(x, k))
-
expect_true_false_linter()
- Require usage of
expect_true(x)
over expect_equal(x, TRUE)
-
expect_type_linter()
- Require usage of
expect_type(x, type)
over expect_equal(typeof(x), type)
-
fixed_regex_linter()
- Require usage of
fixed=TRUE
in regular expressions where appropriate
-
for_loop_index_linter()
- Block usage of for loops directly overwriting the indexing variable
-
function_argument_linter()
- Function argument linter
-
function_left_parentheses_linter()
- Function left parentheses linter
-
function_return_linter()
- Lint common mistakes/style issues cropping up from return statements
-
if_not_else_linter()
- Block statements like if (!A) x else y
-
if_switch_linter()
- Require usage of switch() over repeated if/else blocks
-
ifelse_censor_linter()
- Block usage of
ifelse()
where pmin()
or pmax()
is more appropriate
-
implicit_assignment_linter()
- Avoid implicit assignment in function calls
-
implicit_integer_linter()
- Implicit integer linter
-
indentation_linter()
- Check that indentation is consistent
-
infix_spaces_linter()
- Infix spaces linter
-
inner_combine_linter()
- Require
c()
to be applied before relatively expensive vectorized functions
-
is_numeric_linter()
- Redirect
is.numeric(x) || is.integer(x)
to just use is.numeric(x)
-
keyword_quote_linter()
- Block unnecessary quoting in calls
-
length_levels_linter()
- Require usage of nlevels over length(levels(.))
-
length_test_linter()
- Check for a common mistake where length is applied in the wrong place
-
lengths_linter()
- Require usage of
lengths()
where possible
-
library_call_linter()
- Library call linter
-
line_length_linter()
- Line length linter
-
list_comparison_linter()
- Block usage of comparison operators with known-list() functions like lapply
-
literal_coercion_linter()
- Require usage of correctly-typed literals over literal coercions
-
matrix_apply_linter()
- Require usage of
colSums(x)
or rowSums(x)
over apply(x, ., sum)
-
missing_argument_linter()
- Missing argument linter
-
missing_package_linter()
- Missing package linter
-
namespace_linter()
- Namespace linter
-
nested_ifelse_linter()
- Block usage of nested
ifelse()
calls
-
nested_pipe_linter()
- Block usage of pipes nested inside other calls
-
nonportable_path_linter()
- Non-portable path linter
-
nrow_subset_linter()
- Block usage of
nrow(subset(x, .))
-
numeric_leading_zero_linter()
- Require usage of a leading zero in all fractional numerics
-
nzchar_linter()
- Require usage of nzchar where appropriate
-
object_length_linter()
- Object length linter
-
object_name_linter()
- Object name linter
-
object_overwrite_linter()
- Block assigning any variables whose name clashes with a
base
R function
-
object_usage_linter()
- Object usage linter
-
one_call_pipe_linter()
- Block single-call magrittr pipes
-
outer_negation_linter()
- Require usage of
!any(x)
over all(!x)
, !all(x)
over any(!x)
-
package_hooks_linter()
- Package hooks linter
-
paren_body_linter()
- Parenthesis before body linter
-
paste_linter()
- Raise lints for several common poor usages of
paste()
-
pipe_call_linter()
- Pipe call linter
-
pipe_consistency_linter()
- Pipe consistency linter
-
pipe_continuation_linter()
- Pipe continuation linter
-
pipe_return_linter()
- Block usage of return() in magrittr pipelines
-
print_linter()
- Block usage of print() for logging
-
quotes_linter()
- Character string quote linter
-
redundant_equals_linter()
- Block usage of
==
, !=
on logical vectors
-
redundant_ifelse_linter()
- Prevent
ifelse()
from being used to produce TRUE
/FALSE
or 1
/0
-
regex_subset_linter()
- Require usage of direct methods for subsetting strings via regex
-
rep_len_linter()
- Require usage of rep_len(x, n) over rep(x, length.out = n)
-
repeat_linter()
- Repeat linter
-
return_linter()
- Return linter
-
routine_registration_linter()
- Identify unregistered native routines
-
sample_int_linter()
- Require usage of sample.int(n, m, ...) over sample(1:n, m, ...)
-
scalar_in_linter()
- Block usage like x %in% "a"
-
semicolon_linter()
- Semicolon linter
-
seq_linter()
- Sequence linter
-
sort_linter()
- Check for common mistakes around sorting vectors
-
spaces_inside_linter()
- Spaces inside linter
-
spaces_left_parentheses_linter()
- Spaces before parentheses linter
-
sprintf_linter()
- Require correct
sprintf()
calls
-
stopifnot_all_linter()
- Block usage of all() within stopifnot()
-
string_boundary_linter()
- Require usage of
startsWith()
and endsWith()
over grepl()
/substr()
versions
-
strings_as_factors_linter()
- Identify cases where
stringsAsFactors
should be supplied explicitly
-
system_file_linter()
- Block usage of
file.path()
with system.file()
-
terminal_close_linter()
- Prohibit close() from terminating a function definition
-
todo_comment_linter()
- TODO comment linter
-
trailing_blank_lines_linter()
- Trailing blank lines linter
-
trailing_whitespace_linter()
- Trailing whitespace linter
-
undesirable_function_linter()
- Undesirable function linter
-
undesirable_operator_linter()
- Undesirable operator linter
-
unnecessary_concatenation_linter()
- Unneeded concatenation linter
-
unnecessary_lambda_linter()
- Block usage of anonymous functions in iteration functions when unnecessary
-
unnecessary_nesting_linter()
- Block instances of unnecessary nesting
-
unnecessary_placeholder_linter()
- Block usage of pipeline placeholders if unnecessary
-
unreachable_code_linter()
- Block unreachable code and comments following return statements
-
unused_import_linter()
- Check that imported packages are actually used
-
vector_logic_linter()
- Enforce usage of scalar logical operators in conditional statements
-
which_grepl_linter()
- Require usage of grep over which(grepl(.))
-
whitespace_linter()
- Whitespace linter
-
yoda_test_linter()
- Block obvious "yoda tests"
Common default configurations