make_spinner

0th

Percentile

Create a spinner

Create a spinner

Usage
make_spinner(
  which = NULL,
  stream = stderr(),
  template = "{spin}",
  static = c("dots", "print", "print_line", "silent")
)
Arguments
which

The name of the chosen spinner. The default depends on whether the platform supports Unicode.

stream

The stream to use for the spinner. Typically this is standard error, or maybe the standard output stream.

template

A template string, that will contain the spinner. The spinner itself will be substituted for {spin}. See example below.

static

What to do if the terminal does not support dynamic displays:

  • "dots": show a dot for each $spin() call.

  • "print": just print the frames of the spinner, one after another.

  • "print_line": print the frames of the spinner, each on its own line.

  • "silent" do not print anything, just the template.

Value

A cli_spinner object, which is a list of functions. See its methods below.

cli_spinner methods:

  • $spin(): output the next frame of the spinner.

  • $finish(): terminate the spinner. Depending on terminal capabilities this removes the spinner from the screen. Spinners can be reused, you can start calling the $spin() method again.

All methods return the spinner object itself, invisibly.

The spinner is automatically throttled to its ideal update frequency.

Examples

## Default spinner
sp1 <- make_spinner()
fun_with_spinner <- function() {
  lapply(1:100, function(x) { sp1$spin(); Sys.sleep(0.05) })
  sp1$finish()
}
ansi_with_hidden_cursor(fun_with_spinner())

## Spinner with a template sp2 <- make_spinner(template = "Computing {spin}") fun_with_spinner2 <- function() { lapply(1:100, function(x) { sp2$spin(); Sys.sleep(0.05) }) sp2$finish() } ansi_with_hidden_cursor(fun_with_spinner2())

## Custom spinner sp3 <- make_spinner("simpleDotsScrolling", template = "Downloading {spin}") fun_with_spinner3 <- function() { lapply(1:100, function(x) { sp3$spin(); Sys.sleep(0.05) }) sp2$finish() } ansi_with_hidden_cursor(fun_with_spinner3())

See Also

Other spinners: demo_spinners(), get_spinner(), list_spinners()

Aliases
  • make_spinner
Documentation reproduced from package cli, version 2.0.1, License: MIT + file LICENSE

Community examples

Looks like there are no examples yet.