Learn R Programming

⚠️There's a newer version (1.10.3) of this package.Take me there.

styler

Overview

styler formats your code according to the tidyverse style guide (or your custom style guide) so you can direct your attention to the content of your code. It helps to keep the coding style consistent across projects and facilitate collaboration. You can access styler through

  • the RStudio Addin as demonstrated below
  • R functions like style_pkg(), style_file() or style_text()
  • various other tools described in vignette("third-party-integrations")

Installation

You can install the package from CRAN.

install.packages("styler")

Or get the development version from GitHub:

# install.packages("remotes")
remotes::install_github("r-lib/styler")

If you don’t use styler interactively (i.e. not from the R prompt or RStudio Addin), make sure you authorize the R package R.cache once to set up a permanent cache. If you use it interactively, you will be asked to grant this permission once. See ?caching for details.

Documentation

The following online docs are available:

Copy Link

Version

Install

install.packages('styler')

Monthly Downloads

48,570

Version

1.5.1

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Lorenz Walthert

Last Published

July 13th, 2021

Functions in styler (1.5.1)

add_line_col_to_wrapped_expr

Adds line and col information to an expression from its child
add_cache_block

Add the block id to a parse table
alignment_ensure_no_closing_brace

Ensure the closing brace of the call is removed
alignment_drop_comments

Remove all comment tokens
add_id_and_short

Add column pos_id and short
add_spaces_or_newlines

Concentrate newlines or spaces in a string
add_roxygen_mask

Add the roxygen mask to code
alignment_has_correct_spacing_around_eq_sub

Check if spacing around = is correct
add_token_terminal

Add information about previous / next token to each terminal
alignment_col1_all_named

Checks if all arguments of column 1 are named
add_stylerignore

Adds the stylerignore column
apply_ref_indention

Apply reference indention to tokens
apply_ref_indention_one

Applying reference indention of a target token
bind_with_child

Bind a parse table with one of its children
cache_activate

Activate or deactivate the styler cache
alignment_serialize

Serialize text from a parse table
cache_clear

Clear the cache
alignment_serialize_line

Serialize one line for a column
cache_by_expression

Cache text
alignment_serialize_column

Serialize all lines for a given column
apply_stylerignore

Ensure correct positional information for stylerignore expressions
alignment_has_correct_spacing_around_comma

Check if spacing around comma is correct
cache_find_block

Find the groups of expressions that should be processed together
alignment_ensure_trailing_comma

Ensure last pd has a trailing comma
assert_tokens

Check token validity
cache_find_path

Where is the cache?
assert_transformers

Assert the transformers
apply_transformers

Apply transformers to a parse table
catch_style_file_output

Capture and post-process the output of style_file without causing side effects
choose_indention

Choose the indention method for the tokens
combine_children

Combine child and internal child
cache_info

Show information about the styler cache
communicate_summary

Communicate the summary of styling
contains_else_expr_that_needs_braces

Check whether an else expression needs braces
cache_is_activated

Check if a cache is activated
communicate_warning

Communicate a warning if necessary
cache_write

Write to the cache
caching

Remember the past to be quicker in the future
create_node_from_nested

Create node from nested parse data
copy_to_tempdir

Copy a file to a temporary directory
drop_cached_children

Drop all children of a top level expression that are cached
create_style_guide

Create a style guide
compute_indent_indices

Compute the indices that need indention
calls_sys

Invoke a system command
create_node_from_nested_root

Convert a nested tibble into a node tree
finalize_raw_chunks

Drop start / stop, when formatting is turned off
create_pos_ids

Create valid pos_ids if possible
assert_filetype

Make sure all supplied file types are allowed
find_blank_lines_to_next_block

Number of lines between cache blocks
get_engine_pattern

What's the engine pattern for rmd code chunks?
get_addins_style_transformer_name

Return the style function or name
context_to_terminals

Propagate context to terminals
get_parse_data

Obtain robust parse data
get_knitr_pattern

Get chunk pattern
assert_text

Assert text to be of positive length and replace it with the empty string otherwise.
context_towards_terminals

Update the a parse table given outer context
create_tokens

Create a terminal token
can_verify_roundtrip

Check whether a round trip verification can be carried out
is_code_chunk_header_or_xaringan_or_code_output

Identify spinning code chunk header or xaringan
ensure_correct_txt

Ensure a correct text of all strings and numeric constants
construct_tree

Construct paths of a tree object given the paths of *-in.R files
cache_more_specs

Create more specs
construct_vertical

Construct an object of class vertical
cache_make_key

Make a key for R.cache
ensure_last_n_empty

Ensure there is one (and only one) blank line at the end of a vector
compute_parse_data_nested

Obtain a nested parse table from a character vector
find_dont_seqs

Find dontrun and friend sequences
find_line_break_position_in_multiline_call

Find index of the token before which the line should be broken
convert_newlines_to_linebreaks

Replace the newline character with a line break
emulate_rd

Convert roxygen comments to Rd code
is_insufficiently_parsed_string

Identify strings that were not fully parsed
needs_rd_emulation

needs_indention_one

Check whether indention is needed
print.vertical

Print styled code
prettify_pkg

Prettify a package
extract_terminals

Extract terminal tokens
env_add_stylerignore

Add positional information of token to next terminal
ensure_valid_pd

Ensure that the parse data is valid
generate_test_samples

Generate a comprehensive collection test cases for comment / insertion interaction Test consist of if / if-else / if-else-if-else cases, paired with various line-break and comment configurations. Used for internal testing.
flatten_pd

Flatten a parse table
extend_if_comment

Find the index of the last comment in the sequence of comments-only tokens after the token that has position pos in pd.
invalid_utf8

Drop-in replacement for xfun:::invalid_utf8()
find_pos_id_to_keep

Find the pos ids to keep
is_cached

Check if text is cached
has_crlf_as_first_line_sep

Check if a string uses CRLF EOLs
find_start_pos_id

Find legit starting value for a new positional id
env_current

The elements that are added to this environment are:
nest_parse_data

Nest a flat parse table
expressions_are_identical

Check whether two expressions are identical
flatten_operators_one

Flatten one level of nesting with its child
flatten_operators

Flatten some token in the nested parse table based on operators
if_for_while_part_requires_braces

Check if if, for or while loop expression require a braces.
create_tree

Create a tree from text
next_non_comment

Find the index of the next or previous non-comment in a parse table.
default_style_guide_attributes

Initialize default style guide attributes
parse_transform_serialize_r

Parse, transform and serialize text
construct_out

Construct *-out.R from a *-in.R
scope_normalize

Convert the styling scope to its lower-level representation
relocate_eq_assign_one

Relocate an assignment expression
enrich_terminals

Enrich flattened parse table
rds_to_version

Convert a serialized R object to a certain version.
enhance_mapping_special

Enhance the mapping of text to the token "SPECIAL"
parse_transform_serialize_r_block

Parse, transform and serialize a nested parse table
hash_standardize

Standardize text for hashing
remove_dont_mask

Remove dont* mask
separate_chunks

Separate chunks within Rmd and Rnw contents
set_line_break_before_curly_opening

Set line break before a curly brace
read_utf8

Read UTF-8
initialize_attributes

Initialize attributes
set_multi_line

Set the multi-line column
prettify_any

Prettify R code in current working directory
post_parse_roxygen

Changing the line definition
map_filetype_to_pattern

Map the file type to a corresponding regular expression
needs_indention

Check whether indention is needed
make_transformer

Closure to return a transformer function
find_blank_lines_to_next_expr

Find blank lines
n_times_faster_with_cache

Times two function calls with temporarily enabled cache
set_regex_indention

Set indention of tokens that match regex
relocate_eq_assign

Relocate the expressions containing the token EQ_ASSIGN within the nested parse table
find_block_id

Find the block to which a token belongs
dir_without_.

dir(), but without dot-prefix and different defaults
find_tokens_to_update

Find the tokens to update when applying a reference indention
dir_without_._one

dir(), but with full names, ignored case, and included hidden files and recursive.
fix_quotes

Replace single quotes with double quotes
lookup_new_special

Lookup which new tokens were created from "SPECIAL"
identify_raw_chunks

Identifies raw Rmd or Rnw code chunks
lookup_tokens

Lookup all tokens that have a unique token-text mapping
start_comments_with_space

Start comments with a space
style_active_pkg

Wrapper around style_pkg() for access via Addin.
next_terminal

Tell me what the next terminal is
match_stop_to_start

Match a stop candidate to a start
identify_start_to_stop_of_roxygen_examples_from_text

Figure out where code examples start and stop
option_read

Get the value of an option
is_shebang

Identify comments that are shebangs
math_token_spacing

Specify spacing around math tokens
style_selection

Styles the highlighted selection in a .R or .Rmd file.
parse_transform_serialize_roxygen

Parse, transform and serialize roxygen comments
is_tilde_expr

Check whether a parse table contains a tilde
tidyverse_style

The tidyverse style
text_to_flat_pd

Creates a flat parse table with minimal initialization
style_space_around_math_token

Style spacing around math tokens
specify_transformers_drop

Specify which tokens must be absent for a transformer to be dropped
set_line_break_if_call_is_multi_line

Set line break for multi-line function calls
parse_roxygen

Parse roxygen comments into text
parser_version_set

Work with parser versions
parse_safely

Save parsing from text
test_transformers_drop

Test transformers_drop for consistency
split_roxygen_segments

Split text into roxygen and non-roxygen example segments
pd_is

Check whether a parse table corresponds to a certain expression
pd_is_multi_line

Check whether a parse table is a multi-line token
testthat_file

Create the path to a test that file
reindention

Specify what is re-indented how
read_utf8_bare

Drop-in replacement for xfun::read_utf8(), with an optional warn argument.
set_line_break_after_opening_if_call_is_multi_line

Sets line break after opening parenthesis
remove_roxygen_header

Remove roxygen header
set_arg_paths

Standardize paths in root
set_arg_write_tree

Set the write_tree argument
relocate_eq_assign_nest

Relocate all assignment expressions that contain EQ_ASSIGN within a nest
style_file

Style .R, .Rmd or .Rnw files
style_dir

Prettify arbitrary R code
set_space_between_eq_sub_and_comma

Set space between EQ_SUB and "','"
set_space_around_op

Set spaces around operators
set_line_break_around_curly_curly

Styling around \{\{
rep_char

Repeat elements of a character vector times times and collapse it
save_after_styling_is_active

Heuristic to see if a file styled with the addin should be saved or not.
roxygen_remove_extra_brace

set_and_assert_arg_filetype

Set the file type argument
serialize_parse_data_flattened

Serialize flattened parse data
style_roxygen_example_snippet

Given a code snippet is dont* or run, style it
test_dry

Test the dry argument
style_roxygen_code_example_segment

Style a roxygen code example segment
test_transformer

Transforming test input with a transformer function
transform_and_check

Transform a file an check the result
set_style_transformers

Asks the user to supply a style
transform_code

Transform code from R, Rmd or Rnw files
transform_mixed

Transform mixed contents
transform_file

Transform a file and output a customized message
transform_utf8

Apply a function to the contents of a file
set_space_between_levels

Set space between levels of nesting
transform_files

Transform files with transformer functions
style_text

Style a string
style_space_around_token

Set spacing of token to a certain level
set_spaces

Helper for setting spaces
style_pkg

Prettify R source code
update_indention

Update indention information of parse data
wrap_if_else_while_for_fun_multi_line_in_curly

Wrap if-else, while and for statements in curly braces
update_indention_ref

Update the indention reference
style_guides

Style guides
wrap_multiline_curly

Wrap a multi-line statement in curly braces
set_unindention_child

Unindent a child if necessary
token_is_on_aligned_line

Check if tokens are aligned
verify_roundtrip

Verify the styling
style_roxygen_code_example

Style a roxygen code example that may contain dontrun and friends
visit

Visit'em all
wrap_else_multiline_curly

Add curly braces to else
tokenize

Obtain token table from text
visit_one

Transform a flat parse table with a list of transformers
style_roxygen_code_example_one

Style a roxygen code example with exactly one @example or @exampleIf
styler_addins

Stylers for RStudio Addins
stylerignore

Turn off styling for parts of the code
transform_utf8_one

Potentially transform a file
stylerignore_consolidate_col

Consolidate columns after a merge
transformers_drop

Remove transformers that are not needed
style_text_without_curly_curly

style_text() without rules for \{\{
test_collection

Run a collection of tests
validate_new_pos_ids

Validate sequence of new position ids
wrap_expr_in_curly

Wrap an expression in curly braces
update_newlines

Update the newlines attribute
styler-package

Non-invasive pretty printing of R code
wrap_expr_in_expr

Wrap an expression into an expression
try_transform_as_r_file

Style a file as if it was an .R file
unindent_child

Unindent a child
two_cols_match

Check whether two columns match
wrap_subexpr_in_curly

Wrap a sub-expression in curly braces
unindent_fun_dec

Revert the indention of function declaration header