It uses the cli.width option, if set. Otherwise it tries to
determine the size of the terminal or console window.
Details
These are the exact rules:
If the
cli.widthoption is set to a positive integer, it is used.If the
cli.widthoption is set, but it is not a positive integer, and error is thrown.
Then we try to determine the size of the terminal or console window:
If we are not in RStudio, or we are in an RStudio terminal, then we try to use the
tty_size()function to query the terminal size. This might fail if R is not running in a terminal, but failures are ignored.If we are in the RStudio build pane, then the
RSTUDIO_CONSOLE_WIDTHenvironment variable is used. If the build pane is resized, then this environment variable is not accurate any more, and the output might get garbled.We are not using the
RSTUDIO_CONSOLE_WIDTHenvironment variable if we are in the RStudio console.
If we cannot determine the size of the terminal or console window (e.g. if
console_width() is called in a startup .Rprofile script before a console
is present), then we use the width option. If the width option is not
set, then we return 80L.