implicit-hie icon indicating copy to clipboard operation
implicit-hie copied to clipboard

Operate on cabal project files not called cabal.project

Open lf- opened this issue 3 years ago • 2 comments

Cabal has a flag --project, but it seems that there's not any way of using that with implicit-hie.

The practical use case of --project is when you may have a nix vs non-nix dependency setup, for instance.

lf- avatar Oct 13 '22 23:10 lf-

You might be interested in the feature https://github.com/haskell/hie-bios/pull/357

With that feature, it'd be enough to have a hie.yaml:

cradle:
  cabal:
    project-file: cabal.project.8.8.4

and stuff like that. Leave a comment if you think that feature would help you.

fendor avatar Oct 14 '22 09:10 fendor

It wouldn't, surprisingly. Long story, marred by my own cursed workflows on top of a codebase that needs to be weird to be usable.

The reason is that there's overlapping cabal targets in the work project due to test-dev (https://jade.fyi/blog/cabal-test-dev-trick/). This is used to paper over multiple home units' absence on a codebase that is extremely marginal HLS perf wise (Well-Typed has worked on it specifically in the past) by sticking test and lib into one cabal target. So I need to delete some of those rules and thus a manual hie.yaml is necessary.

The thing I use gen-hie for is when I'm doing hacks (see "yolo method" of https://jade.fyi/blog/nix-hls-for-deps/) to work on dependencies in-situ, replacing the nix versions, and don't want to write the hie.yaml rules for the stuff I just added by hand. So I run it and copy the appropriate prefix rules for the dependency I just stuck into nix-shell.cabal.project.local

N.B. the reason there are two cabal project files is that the not nix-shell one has source-repository-package to make git deps build on non nix systems.

lf- avatar Oct 14 '22 15:10 lf-