| package_hooks_linter {lintr} | R Documentation |
Package hooks linter
Description
Check various common "gotchas" in .onLoad(), .onAttach(), .Last.lib(), and .onDetach()
namespace hooks that will cause R CMD check issues. See Writing R Extensions for details.
Usage
package_hooks_linter()
Details
-
.onLoad()shouldn't callcat(),message(),print(),writeLines(),packageStartupMessage(),require(),library(), orinstalled.packages(). -
.onAttach()shouldn't callcat(),message(),print(),writeLines(),library.dynam(),require(),library(), orinstalled.packages(). -
.Last.lib()and.onDetach()shouldn't calllibrary.dynam.unload(). -
.onLoad()and.onAttach()should take two arguments, with names matching^liband^pkg;.Last.lib()and.onDetach()should take one argument with name matching^lib.
Tags
correctness, package_development, style
See Also
linters for a complete list of linters available in lintr.
Examples
# will produce lints
lint(
text = ".onLoad <- function(lib, ...) { }",
linters = package_hooks_linter()
)
lint(
text = ".onAttach <- function(lib, pkg) { require(foo) }",
linters = package_hooks_linter()
)
lint(
text = ".onDetach <- function(pkg) { }",
linters = package_hooks_linter()
)
# okay
lint(
text = ".onLoad <- function(lib, pkg) { }",
linters = package_hooks_linter()
)
lint(
text = '.onAttach <- function(lib, pkg) { loadNamespace("foo") }',
linters = package_hooks_linter()
)
lint(
text = ".onDetach <- function(lib) { }",
linters = package_hooks_linter()
)