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^lib
and^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()
)