Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

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

Open
averissimo opened this issue Feb 14, 2024 · 1 comment
Open

Comments

@averissimo
Copy link

averissimo commented Feb 14, 2024

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

@lorenzwalthert
Copy link
Collaborator

lorenzwalthert commented Feb 14, 2024

Acknowledging this, but won’t have capacity to work on it at the moment. Contributions welcome.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants