-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cater for stack and cabal users in one cradle #199
Comments
Currently, there is not! |
I think the issue is if you check in the hie.yaml you've asked the project what it wants, not the user what they want. Asking would be one option. Or maybe a file |
Seems harder for newcomers of the ecosystem to me. They wouldn't know about the purpose of a hie.yaml file and why they should modify it, etc... Solving this at the Language Server level seems sensible to me. We could define a convention that the specification for stack needs to be named Explicitly asking user to choose one of the two might have the advantage that new users will be aware of the relative importance of this file. |
A language server option is the right way to go, but in most cases also unnecessary. |
If I do |
This is a nice addition, but currently my workflow is indeed to clone a project, write a hie.yaml and then open the project with vs codium. No dist-newstyle or .stack-work will exist at that point, so a global preference makes still sense to me.
you are right, I did not think about that |
hls is gitignoring |
I think hls not including a hie.yaml is terrible - it means hls is harder to get going with hls. Ghcide does include a hie.yaml - as do all my projects (e.g. HLint, Shake etc). My expectation is that eventually all projects will either want to ship a hie.yaml, or want to confirm that hls works with no hie.yaml. |
This fascilitates using the Haskell Language Server with the Agda codebase. More information here: * https://github.com/haskell/haskell-language-server * https://github.com/mpickering/hie-bios Although `hie.yaml` supports either Stack or Cabal, it does not yet support both configurations well. (haskell/hie-bios#199). Therefore this somewhat arbitrarily chooses to prefer Stack on the basis that: * There seem to be more open bugs for Cabal than Stack in the `hie-bios` repo. * I use Stack, so functionality was easy to test. * When developing, I prefer to think of `make` + `cabal` as somewhat golden-path, whereas my `stack.yaml` a number of developer options that I'd rather don't clobber each other in the same output directory.
This fascilitates using the Haskell Language Server with the Agda codebase. More information here: * https://github.com/haskell/haskell-language-server * https://github.com/mpickering/hie-bios Although `hie.yaml` supports either Stack or Cabal, it does not yet support both configurations well. (haskell/hie-bios#199). Therefore this somewhat arbitrarily chooses to prefer Stack on the basis that: * There seem to be more open bugs for Cabal than Stack in the `hie-bios` repo. * I use Stack, so functionality was easy to test. * When developing, I prefer to think of `make` + `cabal` as somewhat golden-path, whereas my `stack.yaml` a number of developer options that I'd rather don't clobber each other in the same output directory.
Projects like Ghcide itself have both a Stack cradle and a Cabal cradle. For me personally, I want to use the Stack one, but other people prefer the Cabal one. Is there some way to support both in one cradle, with some either user preference or user detection to figure out which one to use?
The text was updated successfully, but these errors were encountered: