Produces ctags "tags" and etags "TAGS" files for Haskell programs
Haskell
134
219 commits
updated May 11, 2025
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
Old but eventually useful tool using its own fuzzy parsing which has advantages and disadvantages. See ghc-tags to learn about alternatives.
cd into the repo directorycabal install. You should get output similar to Symlinking 'hasktags' to '/Users/user/.cabal/bin/hasktags'Build hasktags (standard cabal build)
Ctag format:
hasktags --ctags .
Etag format (used by emacs):
hasktags --etags .
Both formats:
hasktags --both .
NB: Generating both tags generates a file called TAGS for Emacs, and one called ctags for 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
You can use a configuration like this one with Tagbar to produce a tagbar like this:

Enormous thanks to Alexey Radkov for the hierarchical design necessary for this usage.
Load the "tags" file using File/Load Tags File. Use "Ctrl-D" to search for a tag.
Load the "TAGS" file using "visit-tags-table" Use "M-." to search for a tag.
There is a plugin.
To run the tests, do cd testcases; sh test.sh.
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.
Things which could be done in the future:
See cabal file
Alex no longer supports bird style ">", so should we drop support, too?
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
And probably much more
Haskell
96.3%
Nix
3.7%
Produces ctags "tags" and etags "TAGS" files for Haskell programs
Haskell
134
219 commits
updated May 11, 2025
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
Old but eventually useful tool using its own fuzzy parsing which has advantages and disadvantages. See ghc-tags to learn about alternatives.
cd into the repo directorycabal install. You should get output similar to Symlinking 'hasktags' to '/Users/user/.cabal/bin/hasktags'Build hasktags (standard cabal build)
Ctag format:
hasktags --ctags .
Etag format (used by emacs):
hasktags --etags .
Both formats:
hasktags --both .
NB: Generating both tags generates a file called TAGS for Emacs, and one called ctags for 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
You can use a configuration like this one with Tagbar to produce a tagbar like this:

Enormous thanks to Alexey Radkov for the hierarchical design necessary for this usage.
Load the "tags" file using File/Load Tags File. Use "Ctrl-D" to search for a tag.
Load the "TAGS" file using "visit-tags-table" Use "M-." to search for a tag.
There is a plugin.
To run the tests, do cd testcases; sh test.sh.
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.
Things which could be done in the future:
See cabal file
Alex no longer supports bird style ">", so should we drop support, too?
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
And probably much more
Haskell
96.3%
Nix
3.7%