Style code according to the tidyverse style guide.
Usage
tidyverse_style(
scope = "tokens",
strict = TRUE,
indent_by = 2L,
start_comments_with_one_space = FALSE,
reindention = tidyverse_reindention(),
math_token_spacing = tidyverse_math_token_spacing()
)
Arguments
- scope
The extent of manipulation. Can range from "none" (least invasive) to "tokens" (most invasive). See 'Details'. This argument is a string or a vector of class
AsIs
.- strict
A logical value indicating whether a set of strict or not so strict transformer functions should be returned. Compare the functions returned with or without
strict = TRUE
. For example,strict = TRUE
means force one space e.g. after "," and one line break e.g. after a closing curly brace.strict = FALSE
means to set spaces and line breaks to one if there is none and leave the code untouched otherwise. See 'Examples'.- indent_by
How many spaces of indention should be inserted after operators such as '('.
- start_comments_with_one_space
Whether or not comments should start with only one space (see
start_comments_with_space()
).- reindention
A list of parameters for regex re-indention, most conveniently constructed using
specify_reindention()
.- math_token_spacing
A list of parameters that define spacing around math token, conveniently constructed using
specify_math_token_spacing()
.
Details
The following levels for scope
are available:
"none": Performs no transformation at all.
"spaces": Manipulates spacing between token on the same line.
"indention": Manipulates the indention, i.e. number of spaces at the beginning of each line.
"line_breaks": Manipulates line breaks between tokens.
"tokens": manipulates tokens.
scope
can be specified in two ways:
As a string: In this case all less invasive scope levels are implied, e.g. "line_breaks" includes "indention", "spaces". This is brief and what most users need.
As vector of class
AsIs
: Each level has to be listed explicitly by wrapping one ore more levels of the scope inI()
. This offers more granular control at the expense of more verbosity.
See 'Examples' for details.
Examples
style_text("call( 1)", style = tidyverse_style, scope = "spaces")
#> call(1)
style_text("call( 1)", transformers = tidyverse_style(strict = TRUE))
#> call(1)
style_text(c("ab <- 3", "a <-3"), strict = FALSE) # keeps alignment of "<-"
#> ab <- 3
#> a <- 3
style_text(c("ab <- 3", "a <-3"), strict = TRUE) # drops alignment of "<-"
#> ab <- 3
#> a <- 3
# styling line breaks only without spaces
style_text(c("ab <- 3", "a =3"), strict = TRUE, scope = I(c("line_breaks", "tokens")))
#> ab <- 3
#> a <-3