Skip to content

Formating of function arguments behaviour changes if indent_by is not 2 #1178

Description

@averissimo

Problem: Changing indent_by configuration doesn't implement the same styling guides (on "Double-indent")

It changes the style to "Function-indent" (reference)

Reproducible code:

foo_2 <- "foo <- function(
    bar) {
  NULL
}"

foo_4 <- "foo <- function(
        bar) {
    NULL
}"

styler::style_text(foo_2)
#> foo <- function(
#>     bar) {
#>   NULL
#> }
styler::style_text(foo_4, indent_by = 4L)
#> foo <- function(bar) {
#>     NULL
#> }
styler::style_text(foo_4, transformers = styler::tidyverse_style(indent_by = 4))
#> foo <- function(bar) {
#>     NULL
#> }

testthat::expect_identical(
    foo_2 |> 
        styler::style_text(indent_by = 2L) |> 
        as.character() |> 
        paste(collapse = "\n", sep = ""),
    foo_2
)

testthat::expect_identical(
    foo_4 |> 
        styler::style_text(indent_by = 4L) |> 
        as.character() |> 
        paste(collapse = "\n", sep = ""),
    foo_4
)
#> Error: paste(...) not identical to `foo_4`.
#> 1/1 mismatches
#> x[1]: "foo <- function(bar) {\n    NULL\n}"
#> y[1]: "foo <- function(\n        bar) {\n    NULL\n}"

# Sanity check using "tidyverse_style"

testthat::expect_identical(
    foo_2 |> 
        styler::style_text(transformers = styler::tidyverse_style(indent_by = 2L)) |> 
        as.character() |> 
        paste(collapse = "\n", sep = ""),
    foo_2
)

testthat::expect_identical(
    foo_4 |> 
        styler::style_text(transformers = styler::tidyverse_style(indent_by = 4)) |> 
        as.character() |> 
        paste(collapse = "\n", sep = ""),
    foo_4
)
#> Error: paste(...) not identical to `foo_4`.
#> 1/1 mismatches
#> x[1]: "foo <- function(bar) {\n    NULL\n}"
#> y[1]: "foo <- function(\n        bar) {\n    NULL\n}"

Created on 2024-02-14 with reprex v2.1.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions