The hasktags package

[Tags:bsd3, library, program, test]

Produces ctags tags and etags TAGS files for Haskell programs.

[Skip to Readme]


Versions 0.67, 0.68, 0.68.1, 0.68.2, 0.68.3, 0.68.4, 0.68.5, 0.68.6, 0.68.7, 0.69.0, 0.69.1, 0.69.2, (info)
Dependencies base (==4.*), bytestring (>=0.9 && <0.11), directory (>=1.1 && <1.3), filepath, hasktags, json (>=0.5 && <0.10), unix, utf8-string [details]
License BSD3
Copyright The University Court of the University of Glasgow
Author The GHC Team
Maintainer Jack Henahan <>, Marc Weber <>, Marco Túlio Pimenta Gontijo <>
Stability Unknown
Category Development
Home page
Bug tracker
Source repository head: git clone
Uploaded Thu Sep 15 16:47:20 UTC 2016 by jhenahan
Distributions Arch:, Debian:0.69.1, FreeBSD:0.69.1, NixOS:
Downloads 9670 total (53 in the last 30 days)
0 []
Status Docs available [build log]
Last success reported on 2016-09-15 [all 1 reports]




debugWhen set to true tokens will be print at various places. This helps understanding why hasktags does not behave the way it shouldDisabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees

Readme for hasktags

Readme for hasktags-

# hasktags
A tool to generate tag files for vim and emacs

What is it for? A tag file is a index containing key items of your project such as
- function names
- module names
- data declarations
- ...

So that you can find / jump to them fast.

Build hasktags (standard cabal build)

I've been using this bash function or something similar for a long time.
It may be cumbersome but works:

runHaskTagsVim() {
  # use --etags instead of --ctags for emacs
  hasktags --ignore-close-implementation --ctags .; sort tags

### ViM
let tags+=tagfile " tags,TAGS is the default setting so probably you don't have to do anything
`:tjump foo<tab>` or such. See `:h` tags

### NEdit
Load the "tags" file using File/Load Tags File.
Use "Ctrl-D" to search for a tag.

### XEmacs/Emacs
Load the "TAGS" file using "visit-tags-table"
Use "M-." to search for a tag.

### jedit
There is a plugin.

### Tests
To run the tests, do `cd testcases; sh`.

## History
In the past this tool was distributed with ghc. I forked and added some
features.  hasktags itself was moved out of the ghc repository. Then I only
verified that my fork finds at least as much tags as the one forked by Igloo.

## Future
Things which could be done in the future:
- make json support optional
- Marco Túlio Pimenta Gontijo proposed replacing json by aeson because it might
  be faster

## Maintainers
See cabal file

## Comments about literate haskell ([lhs][]):
Alex no longer supports bird style ">", so should we drop support, too?

## Contributors
- Tsuru Capital (github/liyang)
- Marco Túlio Pimenta Gontijo (github/marcotmarcot)

Add all people having contributed before Oct 2012
This includes people contributing to the darcs repository as well as people
having contributed when this repository has been part of ghc

# Related work
List taken from announce of lushtags.

And probably much more