[Haskell-cafe] IDE support

Claus Reinke claus.reinke at talk21.com
Sun Apr 22 17:13:45 EDT 2007

> What IDE support is available for Haskell (Visuall Haskell, EclipseFP), 
> anything else?

in addition to the vim plugins already mentioned, i've got a few old ones at 


the page is many years old, but the logs indicate that many folks stumble 
across it via google, without ever telling me, and i've noticed that the 
haskell.org wiki now points to it, so i've just added my current vim files 
for haskell:

    compiler/ghc.vim: basic quickfix settings for ghc
    ftplugin/haskell.vim: basic settings allowing vim to recognise imports
                                    (also load other haskell plugins from here)
    ftplugin/haskell_doc.vim: extensive functionality based on haddock's
            html files for libraries, including doc lookup & id completion

i don't know how i ever haskelled without that last plugin - completing long
library ids or adding imports, is just part of the fun, mostly i like to lookup
docs quickly (if you're using hugs, also try :find), or just get a menu of 
possible imports an id might come from.

the files ought to be portable, but might retain some settings specific to 
windows as that is my working platform, please check and adjust as 
necessary. together with the pre-installed syntax-colouring for haskell, 
this enables much of vim's general ide functionality for haskell, but 
i'm sure one could do more. just pick and mix with the other vim files 
mentioned in this thread or on haskell.org (which perhaps should be more 
prominent, even though there isn't one mode to rule them all for vim!-)

if you can stay within haskell98, HaRe refactoring support for emacs and 
vim is still around:    http://www.cs.kent.ac.uk/projects/refactor-fp/


ps since surprisingly many haskellers are not quite aware of vim's ide
    functions, here is a partial list: syntax highlighting, quickfix (run source
    through ghci, jump to errors listed), tags (jump to definitions; using 
    'ghc -e :ctags Main.hs' to generate tag file for Main.hs and imports,
    exported ids only at the moment; or use another tag file generator), 
    completion with respect to current file, imported modules, tag files,
    haddock files (using haskell_doc.vim), (or define your own 
    completion function), list lines using id under cursor, match open/
    close brackets and parens, fold away sections of modules, ... not 
    to mention the general editor, search&replace functions..

    see the help files (:help), in vim, or online at 

More information about the Haskell-Cafe mailing list