Emacs/Project navigation

From HaskellWiki
< Emacs
Revision as of 18:48, 28 May 2012 by Chrisdone (talk | contribs) (Added section about tags.)
Jump to navigation Jump to search

Emacs tags/hasktags

Get hasktags

ETAGS allows jumping to the definition of names at the point via M-.. To generate tags (a TAGS file) for a project, you need hasktags.

$ cabal install hasktags

Calling directly

Run M-x haskell-process-generate-tags to generate the TAGS file of the current session directory.

You can now use M-. on a name in a Haskell buffer which will jump directly to its definition. You can also now use it for autocompletion.

On save

Provided you have properly bound C-x C-s, you just need to enable tags generation on save:

(custom-set-variables
 '(haskell-tags-on-save t))

or

(setq haskell-tags-on-save t)

or just M-x customize-group haskell and it's in there.

Speedbar

Emacs has a SpeedBar which works quite nice together with haskell-mode and also detects syntactic elements such as variables, imports, instances, classes.

Just add

   (require 'speedbar)
   (speedbar-add-supported-extension ".hs")

to your .emacs file and fire up speedbar with M-x speedbar.