Skip to content

Users should be able to specify multi-repl support and opt-out of it, if unsupported. #4178

Closed
@fendor

Description

@fendor

We added support for loading multiple component loading in #3462 and since then, we had a couple of bug reports and other issues, such as haskell/cabal#9860.

We improve the situation by adding a hie-bios configuration and expand this configurability to HLS itself: It should be possible to use the cabal multi-repl feature by toggling an option in the lsp client.

To achieve that, introduce a new LSP config:

Description: Specify the project loading strategy of the Language Server. It allows the build tool (such as cabal or stack) to load multiple components at once. While this can lead to an improved IDE experience, it is an experimental feature. Only change to "Single Component" when you encounter issues with cabal.

Configs:

  • Single Component: Always load only a single component at a time. This is the most reliable option if you encountered any issues with the other options.
  • Multiple Components: Allow the build tool to setup a multiple component session, if the build tool supports it. At the moment, only cabal supports loading with multiple components. If the cabal version does not support load multiple components at once, HLS falls gracefully back to "Single Component" mode
  • Auto: Let HLS decide how to load your project. For build tools that support it, HLS will use "Multiple Components" and otherwise "Single Component". Starting from the cabal version 3.12, cabal supports loading of multiple components at once.

Related issue: #3738

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions