signal: Signal Feedback to the Console UI

signalR Documentation

Signal Feedback to the Console UI

Description

Similar to usethis::ui_*() function suite but does not require importing the usethis, crayon, or cli packages. All signal_*() functions can be silenced by setting options(signal.quiet = TRUE).

Usage

value(x)

signal_done(...)

signal_todo(...)

signal_oops(...)

signal_info(...)

signal_rule(text = "", line_col = NULL, lty = c("single", "double"))

add_color(x, col)

add_style

## S3 method for class 'soma_style'
print(x, ...)

## S3 method for class 'soma_style'
x$y

has_style(x)

rm_style(x)

Arguments

x

Character. A string to report to the UI or to add a style/color.

...

Elements passed directly to cat().

text

Character. String of length 1. Added at the left margin of the horizontal rule.

line_col

See col.

lty

Character. Either "single" or "double" line type (matched).

col

Color (or style) for the text (or line). Currently one of:

  • red

  • green

  • yellow

  • blue

  • magenta

  • cyan

  • black

  • white

  • grey

  • bold

  • italic

  • underline

  • inverse

  • strikethrough

y

A coloring function, i.e. an element the add_style object, see the col argument.

Functions

  • value: Signal a value to the UI. Similar to usethis::ui_value(). Each element of x becomes an entry in a comma separated list and a blue color is added.

  • signal_done: Signal a completed task to the UI. Similar to usethis::ui_done().

  • signal_todo: Signal a to-do task to the UI. Similar to usethis::ui_todo().

  • signal_oops: Signal oops error to the UI. Similar to usethis::ui_oops().

  • signal_info: Signal info to the UI. Similar to usethis::ui_info().

  • signal_rule: Make a rule with left aligned text. Similar to cli::rule().

  • add_color: Add a color or style to a string. Similar to crayon::crayon().

  • add_style: An alternative syntax. A list object where each element is a color/style function wrapping around add_color() and each element determines the col argument. See examples.

  • print.soma_style: Functions in the apply_style object have their own class, which allows for the special S3 print method and the chaining in the examples below.

  • $.soma_style: Easily chain styles with $ S3 method.

  • has_style: Logical. Test if string contains ANSI styles/colors.

  • rm_style: Remove a color or style from character strings.

Examples

n <- 4
cat("You need this many bikes:", value(n + 1))

# value() collapses lengths by sep = ", "
value(names(mtcars))

# signal_done()
signal_done("Tests have passed!")

# easily construct complex messages
signal_done("The 'LETTERS' vector has", value(length(LETTERS)), "elements")

# add a horizontal rule
writeLines(signal_rule())

writeLines(signal_rule("Header", line_col = "green", lty = "double"))

cat(add_color("Hello world!", "blue"))

# Combined with signal_*() functions
signal_oops("You shall", add_color("not", "red"), "pass!")

# colors and styles available via add_style()
add_style

# These are equivalent
cat(add_style$blue("Hello world!"))
cat(add_color("Hello world!", "blue"))

# Combine styles
red <- add_style$red("This is red")
string <- c(red, "and this is not")
cat(string)

# Combine styles
blue <- add_style$blue("blue")
red  <- add_style$red("red")
string <- add_style$bold(c(blue, red, "nothing"))
cat(string)

# chain styles via `$`
cat(add_style$bold("Success"))
cat(add_style$bold$green("Success"))
cat(add_style$bold$green$italic("Success"))
cat(add_style$bold$green$italic$red("Success"))

# potential typos are trapped
## Not run: 
cat(add_style$bold$greeen$italic("Success"))

## End(Not run)

# check for ANSI styling
has_style(add_style$green("Hello world!"))
has_style(add_style$italic("Hello world!"))

# remove ANSI styling
cat(rm_style(add_style$green("Hello world!")))
cat(rm_style(add_style$italic$cyan("Hello world!")))


stufield/TestPkg documentation built on Jan. 26, 2023, 10:48 p.m.