[Haskell-cafe] What features should an (fictitious) IDE for Haskell have?
Tony Zorman
tonyzorman at mailbox.org
Tue Dec 1 16:22:01 UTC 2020
[ I forgot to CC the Haskell Cafe in the first version of this, my
apologies to Sven for getting this message twice ]
On Tue, Dec 01 2020 16:22, Sven Panne wrote:
> Well, some time ago I actually did, and it was a slightly frustrating
> experience: I'm using Spacemacs, and when I had a look last time, the
> haskell-language-server project was very young, and so was lsp-haskell.el.
> It took quite some time to read HOWTOs/compile/set up things etc., and the
> result was a bit underwhelming: Slow, using tons of memory, buggy, etc.
> Somehow this was to be expected from a new project, nevertheless it was a
> bit demotivating. Although it had a much smaller feature set, I was much
> more happy with Intero, it worked basically out-of-the-box. For most other
> IDEs, setting up a language mode is often just ticking a checkbox or
> pressing a button in an extension manager.
Things are actually much better now, especially for Emacs. Starting
with Emacs 27, it now uses a proper JSON parser, making LSP operations
much, much faster. Installation is also a breeze. For example, eglot
uses HIE by default, so setting it up within Emacs (vanilla, though I
doubt it would be much more complicated for Spacemacs) would just be
(use-package eglot
:hook (haskell-mode . eglot-ensure))
If you want to use ghcide instead of HIE, you can throw a
(add-to-list 'eglot-server-programs '(haskell-mode . ("ghcide" "--lsp")))
in there somewhere. The procedure is very similar if you use lsp-mode
instead of eglot.
> Unless things have changed dramatically in the last few months, "easy" is
> definitely not the right word. Using the C++-LSP-Mode in Spacemacs takes a
> one-liner in the config ("Hey, please use clangd as the LSP backend") and
> an "apt install clangd" (if you don't have it already on your disk, which
> is very likely if you do development in C++ on Linux). I had a very
> different experience with Haskell and LSP.
The second part is more of a "why has no-one packaged this for
Debian/Ubuntu derivatives" (which I'm not sure is true anymore, but I
don't use either so I can't check) shortcoming than a Haskell LSP
shortcoming, don't you think?
More information about the Haskell-Cafe
mailing list