Format R Code Automatically
tidy_source()
supports the :=
operator now (which is widely used in data.table).tidy_source()
supports anonymous functions of the form \(args) expr
for R >= 4.1.0 now (thanks, @notPlancha, #98).Added a new argument pipe
to tidy_source()
. If pipe = TRUE
, it will convert the magrittr pipe %>%
to the base R pipe operator |>
.
Added a function tidy_rstudio()
to reformat R code in the RStudio editor.
Added a function tidy_pipe()
to substitute %>%
with |>
(currently works only in RStudio).
The right arrow assignment operator ->
is supported now.
Added a new argument args.newline
to formatR::tidy_source()
. When set to TRUE
, function arguments can start on a new line, e.g.,
shiny::updateSelectizeInput(session, "foo", label = "New Label", selected = c("A",
"B"), choices = LETTERS, server = TRUE)
can be reformatted to:
shiny::updateSelectizeInput(
session, "foo", label = "New Label", selected = c("A", "B"),
choices = LETTERS, server = TRUE
)
Support the new pipe operator |>
in R 4.1.0.
The width.cutoff
argument works more accurately when comments are indented (thanks, @iqis, #92). Previously, width.cutoff
did not take the indentation or the number of #
characters in a comment when wrapping it, which may lead to wrapped comment lines that are wider than width.cutoff
.
Lines will be wrapped after operators %>%
, %T%
, %$%
, and %<>%
now (thanks, @g4challenge #54, @jzelner #62, @edlee123 #68).
The argument width.cutoff
of tidy_source()
used to be the lower bound of line widths. Now if you pass a number wrapped in I()
, it will be treated as the uppper bound, e.g., tidy_source(width.cutoff = I(60))
. However, please note that the upper bound cannot always be respected, e.g., when the code contains an extremely long string, there is no way to break it into shorter lines automatically (thanks, @krivit @pablo14, #71).
The value of the argument width.cutoff
can be specified in the global option formatR.width
now. By default, the value is still taken from the global option width
like before.
tidy_source()
fails to read the last line (thanks, @edlee123, #54).White spaces on blank lines are removed now (thanks, @nylander, #88).
This package requires R >= 3.2.3 now.
added a new function tidy_file()
to format specified R scripts (thanks, @edlee123, #61)
usage() was re-implemented by @egnha in #66; the major difference with the previous version is that width
means the maximum width (if possible) instead of the minimum; it also gained two new arguments, indent.by.FUN
and fail
; see ?formatR::usage
for details