% Generated by roxygen2: do not edit by hand % Please edit documentation in R/topic-errors.R \name{topic-condition-customisation} \alias{topic-condition-customisation} \title{Customising condition messages} \description{ Various aspects of the condition messages displayed by \code{\link[=abort]{abort()}}, \code{\link[=warn]{warn()}}, and \code{\link[=inform]{inform()}} can be customised using options from the \href{https://cli.r-lib.org}{cli} package. } \section{Turning off unicode bullets}{ By default, bulleted lists are prefixed with unicode symbols: \ifelse{latex}{\emph{Not in PDF manual.}}{\if{html}{\out{
}}\preformatted{rlang::abort(c( "The error message.", "*" = "Regular bullet.", "i" = "Informative bullet.", "x" = "Cross bullet.", "v" = "Victory bullet.", ">" = "Arrow bullet." )) #> Error: #> ! The error message. #> • Regular bullet. #> ℹ Informative bullet. #> ✖ Cross bullet. #> ✔ Victory bullet. #> → Arrow bullet. }\if{html}{\out{
}}} Set this option to use simple letters instead: \if{html}{\out{
}}\preformatted{options(cli.condition_unicode_bullets = FALSE) rlang::abort(c( "The error message.", "*" = "Regular bullet.", "i" = "Informative bullet.", "x" = "Cross bullet.", "v" = "Victory bullet.", ">" = "Arrow bullet." )) #> Error: #> ! The error message. #> * Regular bullet. #> i Informative bullet. #> x Cross bullet. #> v Victory bullet. #> > Arrow bullet. }\if{html}{\out{
}} } \section{Changing the bullet symbols}{ You can specify what symbol to use for each type of bullet through your cli user theme. For instance, here is how to uniformly use \code{*} for all bullet kinds: \if{html}{\out{
}}\preformatted{options(cli.user_theme = list( ".cli_rlang .bullet-*" = list(before = "* "), ".cli_rlang .bullet-i" = list(before = "* "), ".cli_rlang .bullet-x" = list(before = "* "), ".cli_rlang .bullet-v" = list(before = "* "), ".cli_rlang .bullet->" = list(before = "* ") )) rlang::abort(c( "The error message.", "*" = "Regular bullet.", "i" = "Informative bullet.", "x" = "Cross bullet.", "v" = "Victory bullet.", ">" = "Arrow bullet." )) #> Error: #> ! The error message. #> * Regular bullet. #> * Informative bullet. #> * Cross bullet. #> * Victory bullet. #> * Arrow bullet. }\if{html}{\out{
}} If you want all the bullets to be the same, including the leading bullet, you can achieve this using the \code{bullet} class: \if{html}{\out{
}}\preformatted{options(cli.user_theme = list( ".cli_rlang .bullet" = list(before = "* ") )) rlang::abort(c( "The error message.", "*" = "Regular bullet.", "i" = "Informative bullet.", "x" = "Cross bullet.", "v" = "Victory bullet.", ">" = "Arrow bullet." )) #> Error: #> * The error message. #> * Regular bullet. #> * Informative bullet. #> * Cross bullet. #> * Victory bullet. #> * Arrow bullet. }\if{html}{\out{
}} } \section{Changing the foreground and background colour of error calls}{ When called inside a function, \code{abort()} displays the function call to help contextualise the error: \if{html}{\out{
}}\preformatted{splash <- function() \{ abort("Can't splash without water.") \} splash() #> Error in `splash()`: #> ! Can't splash without water. }\if{html}{\out{
}} The call is formatted with cli as a \code{code} element. This is not visible in the manual, but code text is formatted with a highlighted background colour by default. When this can be reliably detected, that background colour is different depending on whether you're using a light or dark theme. You can override the colour of code elements in your cli theme. Here is my personal configuration that fits well with the colour theme I currently use in my IDE: \if{html}{\out{
}}\preformatted{options(cli.user_theme = list( span.code = list( "background-color" = "#3B4252", color = "#E5E9F0" ) )) }\if{html}{\out{
}} } \keyword{internal}