Turn unevaluated shinymeta expressions into (formatted or styled) text.
formatCode(code, width = 500L, formatter = styleText, ...)
styleText(code, ...)
deparseCode(code, width = 500L)Either an unevaluated expression or a deparsed code string.
The width.cutoff to use when deparse()-ing the code expression.
a function that accepts deparsed code (a character string) as the first argument.
arguments passed along to the formatter function.
Single-element character vector with formatted code
Before any formatting takes place, the unevaluated expression is
deparsed into a string via deparseCode(), which ensures that
shinymeta comment strings (i.e., literal strings that appear on their own line,
and begin with one or more # characters.) are turned into comments and
superfluous \{ are removed. After deparsing, the formatCode() function then
calls the formatter function on the deparsed string to format (aka style) the code string.
The default formatter, styleText(), uses styler::style_text() with a couple differences:
Pipe operators (%>%) are always followed by a line break.
If the token appearing after a line-break is a comma/operator, the line-break is removed.
options(shiny.suppressMissingContextError = TRUE)
x <- metaReactive({
"# Here's a comment"
sample(5) %>% sum()
})
#> Warning: Unable to infer variable name for metaReactive when the option keep.source is FALSE. Either set `options(keep.source = TRUE)` or specify `varname` in metaReactive
code <- expandChain(x())
deparseCode(code)
#> # Here's a comment
#> var_1 <- sample(5) %>%
#> sum()
#> var_1
formatCode(code)
#> # Here's a comment
#> var_1 <- sample(5) %>%
#> sum()
#> var_1
formatCode(code, formatter = styler::style_text)
#> # Here's a comment
#> var_1 <- sample(5) %>% sum()
#> var_1