Emacs/Project navigation
From HaskellWiki
< Emacs(Difference between revisions)
m (Added infobox.) |
(Added section about tags.) |
||
| Line 1: | Line 1: | ||
| - | [ | + | == Emacs tags/hasktags == |
| - | + | ||
| + | === Get hasktags === | ||
| + | |||
| + | ETAGS allows jumping to the definition of names at the point via <code>M-.</code>. To generate tags (a TAGS file) for a project, you need [http://hackage.haskell.org/package/hasktags hasktags]. | ||
| + | |||
| + | $ cabal install hasktags | ||
| + | |||
| + | === Calling directly === | ||
| + | |||
| + | Run <code>M-x haskell-process-generate-tags</code> to generate the TAGS file of the [[Sessions|current session directory.]] | ||
| + | |||
| + | You can now use <code>M-.</code> on a name in a Haskell buffer which will jump directly to its definition. You can also now use it for [[Emacs/Autocompletion|autocompletion]]. | ||
| + | |||
| + | === On save === | ||
| + | |||
| + | Provided you have [[Emacs/Keybindings_and_simple_usage#Rebind_C-x_C-s|properly bound <code>C-x C-s</code>]], 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 <code>M-x customize-group haskell</code> and it's in there. | ||
== Speedbar == | == Speedbar == | ||
Current revision
Contents |
1 Emacs tags/hasktags
1.1 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
1.2 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.
1.3 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.
2 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.
