vignettes/explanation/rhino-style-guide.Rmd
rhino-style-guide.RmdRhino follows the tidyverse style
guide, with specific additional rules for box::use
statements to enhance readability and maintainability of code. These
rules are designed to work alongside tidyverse conventions,
providing clarity and consistency when using box
modules.
For more details on how to use box::use statements, see
Explanation:
Box modules.
For more details on how to configure linter rules in the
.lintr file, see Configuring
linters.
For clarity and ease of tracking function origins, avoid using
[...] for imports. Explicitly declare all packages, modules
and functions.
Trailing commas in box::use statements are encouraged.
They simplify line additions and reordering.
Use separate box::use statements for importing packages
and modules (R scripts) for better structure and readability.
Order imports alphabetically to ease locating a specific import. This applies to both packages/modules and functions within them.
Limit the number of functions imported from a module or package to 8.
If more than 8 functions are needed, import the entire package and
reference functions using package$function. Aliases can be
used for convenience. Check box::use
documentation for more details.
box::use() calls
As of Rhino version 1.10.0, format_r() includes styling
for box::use() calls. This is provided by {box.linters}
version >= 0.10.4. As with {styler}, carefully
examine the styling results after performing automated styling on your
code.
Automated styling covers some of the topics described above such as:
box::use() calls for packages and local
modules
# Original
box::use(stringr[str_trim, str_pad], dplyr, app/logic/table)
# Styled
box::use(
dplyr,
stringr[str_pad, str_trim],
)
box::use(
app/logic/table
)box.linters version >= 0.10.4treesitter packagetreesitter.r packagebox::use() call styling is included when running
format_r().box.linters::style_*
functions.For more information on the abilities of {{box.linters}}
styling functions refer to the styling functions documentation.