This allows us to control the messages emitted and continue to keep CLI as a suggested package.
Usage
issue_warning(
msg = NULL,
cli = has_cli(),
what = NULL,
url = NULL,
n = NULL,
N = NULL,
infos = list(),
reports = list(),
...
)
pb_message(..., domain = NULL, appendLF = TRUE)
line_report(msg = "", path, pos, sep = "\t", type = "warning")
append_labels(l, i = TRUE, e = "", cli = FALSE, f = "style_inverse")
message_muffler(expr, keep = FALSE)
Arguments
- msg
the message as a glue or CLI string. Defaults to NULL
- cli
if
TRUE
, stylizese
withf
- what
the name of the specific element to report in an error
- url
a url for extra information to help.
- n
the number of elements errored
- N
the number total elements
- infos
the information about the errors to be shown to the user
- reports
the reported errors.
- ...
named arguments to be evaluated in the message via glue or CLI
- domain
see
gettext
. IfNA
, messages will not be translated, see also the note instop
.- appendLF
logical: should messages given as a character string have a newline appended?
- path
path to the file to report
- pos
position of the error
- sep
a character to use to separate the human message and the line number
- type
(used in the context of CI only) the type of warning that should be thrown (defaults to warning)
- l
a vector/list of characters
- i
the index of elements to append
- e
the new element to append to each element
- f
a function from cli that will transform
e
- expr
an R expression.
- keep
if
TRUE
, the messages are kept in a list. Defautls toFALSE
where cli message are discarded.
Value
nothing, invisibly; used for side-effect
, l
, appended
if keep = FALSE
, the output of expr
, if keep = TRUE
, a list
with the elements val = expr
and msg = <cliMessage>s
Details
The vast majority of the code in this function is copied directly from the
message()
function.
Examples
pegboard:::pb_message("hello")
#> hello
x <- letters[1:5]
x2 <- pegboard:::append_labels(x,
c(1, 3),
"appended",
cli = requireNamespace("cli", quietly = TRUE),
f = "col_cyan"
)
writeLines(glue::glue("[{x}]->[{x2}]"))
#> [a]->[a appended]
#> [b]->[b]
#> [c]->[c appended]
#> [d]->[d]
#> [e]->[e]
pegboard:::message_muffler({
cli::cli_text("hello there! I'm staying in!")
pegboard:::pb_message("normal looking message that's not getting through")
message("this message makes it out!")
runif(1)
})
#> this message makes it out!
#> [1] 0.08075014
pegboard:::message_muffler({
cli::cli_text("hello there! I'm staying in!")
pegboard:::pb_message("normal looking message that's not getting through")
message("this message makes it out!")
runif(1)
}, keep = TRUE)
#> this message makes it out!
#> $val
#> [1] 0.834333
#>
#> $msg
#> $msg[[1]]
#> <cliMessage: hello there! I'm staying in!
#> >
#>
#> $msg[[2]]
#> <pbMessage: normal looking message that's not getting through
#> >
#>
#>