Skip to content

Fourmolu plugin formats code differently compared to separate installation of fourmolu #3788

Closed
@ollimandoliini

Description

@ollimandoliini

Your environment

Which OS do you use?
MacOS

Which version of GHC do you use and how did you install it?
9.6.2 from GHCUp

How is your project built (alternative: link to the project)?

Which LSP client (editor/plugin) do you use?
VSCode and vscode-haskell

Which version of HLS do you use and how did you install it?
2.2.0.0 from GHCUp

Have you configured HLS in any way (especially: a hie.yaml file)?
Whether you have fourmolu.yaml or not doesn't change the behaviour.

Steps to reproduce

Have the HLS configured to use the built-in installation of fourmolu and run the formatting command.

foo :: Maybe Int -> Int
foo = undefined

thing :: Int
thing =
    foo $ Just $
            case undefined of
                True -> 1
                False -> 2

Expected behaviour

The could should be formatted with the following output like a separate installation of fourmolu-0.13.1.0 does.

foo :: Maybe Int -> Int
foo = undefined

thing :: Int
thing =
    foo $
        Just $
            case undefined of
                True -> 1
                False -> 2

Actual behaviour

Running VSCode's formatting command while having HLS use the built-in fourmolu will format the code to the following form:

foo :: Maybe Int -> Int
foo = undefined

thing :: Int
thing =
    foo
        $ Just
        $ case undefined of
            True -> 1
            False -> 2

Debug information

vscode-haskell outputs the following log entry:

2023-09-03T12:47:51.063236Z | Debug | fourmolu: Using compiled in fourmolu-0.13.1.0

Metadata

Metadata

Assignees

Labels

status: blockedNot actionable, because blocked by upstream/GHC etc.type: bugSomething isn't right: doesn't work as intended, documentation is missing/outdated, etc..

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions