MercuryTechnologies/ghciwatch

Make `ghciwatch` useable in a multi-component repo

rockboynton opened this issue · 1 comments

Describe the feature you’d like to be implemented

Currently cabal repl doesn't work with multiple component repos, therefore ghciwatch doesn't either. haskell-language-server does, though, so I hope ghciwatch can do some tricks to also be able to work with multiple components at once.

❯ cabal repl                                                                                                                                                                                                                                                                            Error: cabal: Cannot open a repl for multiple components at once. The target
'' refers to the package foo-0.1.0.0 which includes the libraries bar and baz.

The reason for this limitation is that current versions of ghci do not support
loading multiple components as source. Load just one component and when you
make changes to a dependent component then quit and reload.

List alternatives to the feature and their pros and cons

No response

Additional context

Without this I would only be able to develop on a per-component basis and have to stop/restart ghciwatch for every component I work on within the same cabal project

I think Well-Typed actually fixed this recently: "Multiple Component support for cabal repl" by Matthew Pickering, 2023-03-16. Unfortunately, it's only available in cabal-install-3.12.1.0.

I think we should probably just wait to use cabal-install-3.12.1.0 directly.