Create a linter configuration based on all available linters
Require usage of 'anyDuplicated(x) > 0' over 'any(duplicated(x))'
Require usage of 'anyNA(x)' over 'any(is.na(x))'
Require usage of boolean operators over equivalent arithmetic
Block usage of 'paste()' and 'paste0()' with messaging functions using '...'
Force '&&' conditions to be written separately where appropriate
Force consecutive calls to assertions into just one when possible
Default undesirable functions and operators
Require usage of 'expect_gt(x, y)' over 'expect_true(x > y)' (and similar)
Require usage of 'expect_identical(x, y)' where appropriate
Require usage of 'expect_length(x, n)' over 'expect_equal(length(x), n)'
Require usage of 'expect_named(x, n)' over 'expect_equal(names(x), n)'
Require usage of 'expect_false(x)' over 'expect_true(!x)'
Require usage of 'expect_null' for checking 'NULL'
Require usage of 'expect_s4_class(x, k)' over 'expect_true(is(x, k))'
Require usage of 'expect_true(x)' over 'expect_equal(x, TRUE)'
Require usage of 'expect_type(x, type)' over 'expect_equal(typeof(x), type)'
Require usage of 'fixed=TRUE' in regular expressions where appropriate
Block usage of for loops directly overwriting the indexing variable
Lint common mistakes/style issues cropping up from return statements
Block usage of 'ifelse()' where 'pmin()' or 'pmax()' is more appropriate
Avoid implicit assignment in function calls
Require 'c()' to be applied before relatively expensive vectorized functions
Is this an expression- or a file-level source object?
Redirect 'is.numeric(x) || is.integer(x)' to just use 'is.numeric(x)'
Require usage of nlevels over length(levels(.))
Check for a common mistake where length is applied in the wrong place
Require usage of 'lengths()' where possible
Create a linter configuration based on defaults
Require usage of correctly-typed literals over literal coercions
Require usage of 'colSums(x)' or 'rowSums(x)' over 'apply(x, ., sum)'
Require usage of a leading zero in all fractional numerics
Require usage of '!any(x)' over 'all(!x)', '!all(x)' over 'any(!x)'
read a source file and parse all the excluded lines from it
Raise lints for several common poor usages of 'paste()'
Block usage of '==', '!=' on logical vectors
Prevent 'ifelse()' from being used to produce 'TRUE'/'FALSE' or '1'/'0'
Require usage of direct methods for subsetting strings via regex
Check for common mistakes around sorting vectors
Require usage of 'startsWith()' and 'endsWith()' over 'grepl()'/'substr()' versions
Identify cases where 'stringsAsFactors' should be supplied explicitly
Block usage of 'file.path()' with 'system.file()'
Block usage of anonymous functions in iteration functions when unnecessary
Avoid unnecessary nested 'if' conditional statements
Block usage of pipeline placeholders if unnecessary
Block unreachable code and comments following return statements
Check that imported packages are actually used
Enforce usage of scalar logical operators in conditional statements
Convert an XML node or nodeset into a Lint
Get the name of the function matched by an XPath