is_dynamic_tty: Detect whether a stream supports \\r (Carriage return)

View source: R/tty.R

is_dynamic_ttyR Documentation

Detect whether a stream supports ⁠\\r⁠ (Carriage return)

Description

In a terminal, ⁠\\r⁠ moves the cursor to the first position of the same line. It is also supported by most R IDEs. ⁠\\r⁠ is typically used to achieve a more dynamic, less cluttered user interface, e.g. to create progress bars.

Usage

is_dynamic_tty(stream = "auto")

Arguments

stream

The stream to inspect or manipulate, an R connection object. It can also be a string, one of "auto", "message", "stdout", "stderr". "auto" will select stdout() if the session is interactive and there are no sinks, otherwise it will select stderr().

Details

If the output is directed to a file, then ⁠\\r⁠ characters are typically unwanted. This function detects if ⁠\\r⁠ can be used for the given stream or not.

The detection mechanism is as follows:

  1. If the cli.dynamic option is set to TRUE, TRUE is returned.

  2. If the cli.dynamic option is set to anything else, FALSE is returned.

  3. If the R_CLI_DYNAMIC environment variable is not empty and set to the string "true", "TRUE" or "True", TRUE is returned.

  4. If R_CLI_DYNAMIC is not empty and set to anything else, FALSE is returned.

  5. If the stream is a terminal, then TRUE is returned.

  6. If the stream is the standard output or error within RStudio, the macOS R app, or RKWard IDE, TRUE is returned.

  7. Otherwise FALSE is returned.

See Also

Other terminal capabilities: ansi_hide_cursor(), is_ansi_tty()

Examples

is_dynamic_tty()
is_dynamic_tty(stdout())

cli documentation built on March 31, 2023, 9:04 p.m.