Performs various substitutions in all .R
files in a package
(code and tests). One can also (optionally) style .Rmd
and/or
.Rnw
files (vignettes and readme) by changing the filetype
argument.
Carefully examine the results after running this function!
style_pkg(pkg = ".", ..., style = tidyverse_style,
transformers = style(...), filetype = "R",
exclude_files = "R/RcppExports.R", include_roxygen_examples = TRUE)
Path to a (subdirectory of an) R package.
Arguments passed on to the style
function.
A function that creates a style guide to use, by default
tidyverse_style()
(without the parentheses). Not used
further except to construct the argument transformers
. See
style_guides()
for details.
A set of transformer functions. This argument is most
conveniently constructed via the style
argument and ...
. See
'Examples'.
Vector of file extensions indicating which file types should
be styled. Case is ignored, and the .
is optional, e.g. c(".R", ".Rmd", ".Rnw")
or c("r", "rmd", "rnw")
.
Character vector with paths to files that should be excluded from styling.
Whether or not to style code in roxygen examples.
Invisibly returns a data frame that indicates for each file considered for styling whether or not it was actually changed.
This function overwrites files (if styling results in a change of the code to be formatted). It is strongly suggested to only style files that are under version control or to create a backup copy.
We suggest to first style with scope < "tokens"
and inspect and commit
changes, because these changes are guaranteed to leave the abstract syntax
tree (AST) unchanged. See section 'Roundtrip Validation' for details.
Then, we suggest to style with scope = "tokens"
(if desired) and carefully
inspect the changes to make sure the AST is not changed in an unexpected way
that invalidates code.
The following section describes when and how styling is guaranteed to yield correct code.
If the style guide has scope < "tokens"
, no tokens are changed and the
abstract syntax tree (AST) should not change.
Hence, it is possible to validate the styling by comparing whether the parsed
expression before and after styling have the same AST.
This comparison omits comments. styler compares
error if the AST has changed through styling.
Note that with scope = "tokens"
such a comparison is not conducted because
the AST might well change and such a change is intended. There is no way
styler can validate styling, that is why we inform the user to carefully
inspect the changes.
See section 'Warning' for a good strategy to apply styling safely.
Other stylers: style_dir
,
style_file
, style_text
,
styler_addins
# NOT RUN {
style_pkg(style = tidyverse_style, strict = TRUE)
style_pkg(
scope = "line_breaks",
math_token_spacing = specify_math_token_spacing(zero = "'+'")
)
# }
Run the code above in your browser using DataLab