R: Prettify R source code

style_pkg {styler} | R Documentation

## Prettify R source code

### Description

Performs various substitutions in all `.R` files in a package (code and tests). Carefully examine the results after running this function!

### Usage

    style_pkg(pkg = ".", ..., style = tidyverse_style,
      transformers = style(...), filetype = "R",
      exclude_files = "R/RcppExports.R")

### Arguments

`pkg` | Path to a (subdirectory of an) R package.
`...` | Arguments passed on to the `style` function.
`style` | 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.
`transformers` | A set of transformer functions. This argument is most conveniently constructed via the `style` argument and `...`. See 'Examples'.
`filetype` | Vector of file extensions indicating which file types should be styled. Case is ignored, and the `.` is optional, e.g. `c(".R", ".Rmd")` or `c("r", "rmd")`.
`exclude_files` | Character vector with paths to files that should be excluded from styling.

### Warning

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.

### Roundtrip Validation

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.

### Value

Invisibly returns a data frame that indicates for each file considered for styling whether or not it was actually changed.

### See Also

Other stylers: `style_dir`, `style_file`, `style_text`, `styler_addins`

### Examples

    ## Not run:

    style_pkg(style = tidyverse_style, strict = TRUE)
    style_pkg(
      scope = "line_breaks",
      math_token_spacing = specify_math_token_spacing(zero = "'+'")
    )

    ## End(Not run)

[Package styler version 1.0.2 Index]