Modify a list of defaults by name, allowing for replacement, deletion and addition of new elements.

## Usage

modify_defaults(defaults, ...)

## Arguments

defaults

named list of elements to modify.

...

arguments of elements to change. If unnamed, the argument is automatically named. If the named argument already exists in defaults, it is replaced by the new element. If it does not exist, it is added. If the value is NULL, the element is removed.

## Value

A modified list of elements, sorted by name. To achieve this sort in a platform-independent way, two transformations are applied to the names: (1) replace _ with 0 and (2) convert tolower().

linters_with_tags, linters_with_defaults for creating linter lists.

## Examples

# custom list of undesirable functions:
#    remove sapply (using NULL)
#    add cat (with a accompanying message),
#    add print (unnamed, i.e. with no accompanying message)
#    add return (as taken from all_undesirable_functions)
my_undesirable_functions <- modify_defaults(defaults = default_undesirable_functions,
sapply=NULL, "cat"="No cat allowed", "print", all_undesirable_functions[["return"]])
#> Warning: Trying to remove ‘return’, which is not in defaults.