Emacs

From HaskellWiki
Revision as of 03:53, 10 August 2012 by Scry (talk | contribs)
Jump to navigation Jump to search
Emacs for Haskell

Inferior Haskell processes
Automatic unit testing
Automatic building
API searching
Project navigation
Snippets
Literate programming

There are many Emacs packages and modules for Haskell. The most prominent ones are haskell-mode, ghc-mod and Scion.

Haskell-mode

The haskell-mode package is a set of major modes for Emacs for writing Haskell code and working with Haskell projects. Features syntax highlighting, intelligent indentation, interaction with inferior Haskell interpreter, code browsing, and Cabal project integration. It support Hugs, GHCi, Cabal and hslint, hoogle, cabal-dev, and other utilities.

Haskell-mode is maintained by Philip Weaver. The official project is hosted on Github. For instructions on installing, see Installing haskell-mode. Issues should be reported to the Github project. Please state the version of Emacs and any relevant configuration, when writing your issue. There is a low traffic mailing list, too. Generally it is responsive to new posts.

Scion

The Scion IDE library can be used to complement the haskell-mode with additional features, such as (quoting the documentation):

  • Highlights error messages directly in the source, together with a tool-tip
  • Optional on-the-fly typechecking (idle-time based, or whenever file is saved)
  • Completion on `LANGUAGE` names, pragmas, external module names and `OPTIONS`-flags
  • Go to definition sites of symbols at point

Documentation on how to use `scion.el` can be found in the `README.markdown` file.

The primary repository is at nominolo/scion. An experimental fork featuring GHC7 support can be found at hvr/scion. The hackage version is probably outdated, so better use the upstream version.

ghc-mod

"ghc-mod" is a backend command to enrich Haskell programming on editors including Emacs and Vim. The ghc-mod package on Hackage includes the "ghc-mod" command and Emacs front-end. Its source repository is on github.

Emacs front-end is an extension of Haskell mode. They enable to complete Haskell symbols on Emacs and to browse documents of modules. Flymake with GHC/Hlint is also integrated.

See the home page for more information.

Hugs mode

Alternative Hugs Mode for Emacs by Chris Van Humbeeck provides fontification and cooperation with Hugs. Updated for emacs 20.* by Adam P. Jenkins.

LaTeX

latex-lhs-mode.el is built on top of haskell-mode (above) and provides simultaneous use of all of literate-haskell-mode and most of emacs' built-in latex-mode.

Cabal

cabal-mode.el is a small (and developing) major mode for editing Cabal files.