-
Notifications
You must be signed in to change notification settings - Fork 97
Deprecate ghcide tool and delete the VSCode extension #939
Conversation
I am a happy user of the ghcide tool and I'd like to ask to not deprecate it. I know that I am supposed to use the Haskell-language-server. Unfortunately, that's not an option for me. Just like hie in the past, it comes with too many features and dependencies that cause too much overhead to build and make them work in my development environment -- each time I tried it took me a long time to install it and get it to work and it would usually break soon due to dev-environment changes (like a new cabal or ghc version or other often non-obvious reasons). What I like about ghcide is that it provides a non-opinionated set of basic IDE features. Those features cover everything that I need most (type checking, completion, jump to definition, show type) in a single easy to build, efficient, and robust tool. Haskell-language-server is adding features on top of it that I consider less important. Moreover many of the features the additional features of haskell-language-server seem opinionated to me. And they come at the price of a much more difficult to install and to use product. |
To reiterate, in my experience, ghcide is the first and only Haskell IDE tool (at least for vim) that just builds (even relatively quickly with a simple |
@larskuhtz thanks for the feedback. It seems looking at your list of issues, the main two are:
It may be that with some flags you can trim down HLS to very little over and above Ghcide (maybe you already can and we just haven't documented), or it may be that the work we've done means its no longer as problematic as it used to be. |
@ndmitchell I haven't used HLS yet. I tried to compile it using HLS has dependencies that have been causing build issues in the past or would only build with patches, like for instance brittany. Overall the project structure of HLS is more complex and my experience tells me that projects of that kind tent to be fragile -- e.g. can take a longer time to be ported to new ghc versions. Ideally, an IDE tool should be available broadly across many different dev-environments, because I can't afford to switch or reconfigure my development tools for each project that I work on. I understand that more advanced IDE tools provide a lot of value to teams working in relatively homogeneous and stable environments where it pays off to spent the extra time to setup and maintain those tools. But I also think that its desirable to have tools that are focused on common basic needs and just work everywhere with little dependencies. To me it seems that HLS belongs to the former while Ghcide belongs to the latter category of tools. So, I don't want to argue against HLS -- I will continue to try it and gladly use it if it works for me. I just like to continue to use ghcide, at least as a fallback solution that is available when HLS isn't. |
@larskuhtz i agree with almost all arguments. It would be great to open an issue in hls about your failing install but i want to note there are precompiled executables for all major os's and supported ghc versions that make you not need to even compile it: https://github.com/haskell/haskell-language-server/releases/tag/0.6.0 |
Exactly. As a user, you want to have a small ide with few dependencies. I want the same thing! But as discussed in #936 as a maintainer I want to break down some of the monolithic completions code into multiple providers using the nice plugin model in HLS. Thus it seems natural to move this out of ghcide and into an HLS plugin. These two desires should not be in opposition.
This PR is to get 2 in motion, and before merging I will add a link to this discussion for anyone interested in why we are doing this. |
That would be great, too, if HLS would be modular in a way that a build would just ignore dependencies that one doesn't care about or that might be less stable. What I really like about ghcide is that it "just builds" and "just works" with a vanilla ghc dev environment. In any case my comments are meant as a compliment for ghcide and not criticism of hls. |
…#939) * Delete the extension and deprecate ghcide as an end user tool * Link to this PR
…#939) * Delete the extension and deprecate ghcide as an end user tool * Link to this PR
…#939) * Delete the extension and deprecate ghcide as an end user tool * Link to this PR
Closes #935