This function parses an R Script file, grouping function calls and the named arguments passed to those functions. Then, based on a set of rules, it is determined if functions of interest have specific named arguments specified.

lintFunctionArgs_file(filePath = NULL, rules = NULL, fullPath = FALSE)

lintFunctionArgs_dir(dirPath = "./R", rules = NULL, fullPath = FALSE)

Arguments

filePath

Path to a file, given as a length one character vector.

rules

A named list where the name of each element is a function name, and the value is a character vector of the named argument to check for. All arguments must be specified for a function to "pass".

fullPath

Logical specifying whether to display absolute paths.

dirPath

Path to a directory, given as a length one character vector.

Value

A tibble detailing the results of the lint.

Linting Output

The output of the function argument linter is a tibble with the following columns:

file_path

path to the source file

line_number

Line of the source file the function is on

column_number

Column of the source file the function starts at

function_name

The name of the function

named_args

A vector of the named arguments passed to the function

includes_required

True iff the function specifies all of the named arguments required by the given rules

Limitations

This function is only able to test for named arguments passed to a function. For example, it would report that foo(x = bar, "baz") has specified the named argument x, but not that bar was the value of the argument, or that "baz" had been passed as an unnamed argument.

Examples

if (FALSE) { library(MazamaCoreUtils) # Example rule list for checking exRules <- list( "fn_one" = "x", "fn_two" = c("foo", "bar") ) # Example of using included timezone argument linter lintFunctionArgs_file( "local_test/timezone_lint_test_script.R", MazamaCoreUtils::timezoneLintRules ) }