Skip to contents

The default print method for character vectors is appropriate for interactively inspecting objects, not for logging messages. Thus checked-in usage like print(paste('Data has', nrow(DF), 'rows.')) is better served by using cat(), e.g. cat(sprintf('Data has %d rows.\n', nrow(DF))) (noting that using cat() entails supplying your own line returns, and that glue::glue() might be preferable to sprintf() for constructing templated strings). Lastly, note that message() differs slightly from cat() in that it prints to stderr by default, not stdout, but is still a good option to consider for logging purposes.

Usage

print_linter()

See also

linters for a complete list of linters available in lintr.

Examples

# will produce lints
lint(
  text = "print('a')",
  linters = print_linter()
)
#> ::warning file=<text>,line=1,col=1::file=<text>,line=1,col=1,[print_linter] Use cat() instead of print() logging messages. Use message() in cases calling for a signalled condition.

lint(
  text = "print(paste(x, 'y'))",
  linters = print_linter()
)
#> ::warning file=<text>,line=1,col=1::file=<text>,line=1,col=1,[print_linter] Use cat() instead of print() logging messages. Use message() in cases calling for a signalled condition.

# okay
lint(
  text = "print(x)",
  linters = print_linter()
)