hasktags: Produces ctags "tags" and etags "TAGS" files for Haskell programs

[ bsd3, development, library, program ] [ Propose Tags ]

Produces ctags "tags" and etags TAGS files for Haskell programs.

[Skip to Readme]
Versions [RSS] [faq] 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,, 0.69.3, 0.69.4, 0.69.5, 0.70.0, 0.70.1, 0.71.0, 0.71.1, 0.71.2, 0.72.0 (info)
Dependencies base (==4.*), bytestring (>=0.9 && <0.11), directory (>=1.1 && <1.3), filepath, hasktags, HUnit, json (>=0.5 && <0.10), unix, utf8-string [details]
License BSD-3-Clause
Copyright The University Court of the University of Glasgow
Author The GHC Team
Maintainer Jack Henahan <jhenahan@me.com>, Marc Weber <marco-oweber@gmx.de>, Marco Túlio Pimenta Gontijo <marcotmarcot@gmail.com>
Category Development
Home page http://github.com/MarcWeber/hasktags
Bug tracker http://github.com/MarcWeber/hasktags/issues
Source repo head: git clone http://github.com/MarcWeber/hasktags
Uploaded by jhenahan at 2016-08-29T01:57:07Z
Distributions Arch:0.71.2, Debian:0.71.2, FreeBSD:0.69.1, LTSHaskell:0.72.0, NixOS:0.72.0, Stackage:0.72.0
Executables test, hasktags
Downloads 26885 total (119 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2016-08-29 [all 1 reports]



Manual Flags

Automatic Flags

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


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-0.69.2

[back to package description]
# 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 test.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.
- https://github.com/bitc/lushtags
- http://hackage.haskell.org/package/hasktags
- http://kingfisher.nfshost.com/sw/gasbag/
- http://hackage.haskell.org/package/hothasktags
- http://majutsushi.github.com/tagbar/

And probably much more

[lhs]: http://www.haskell.org/haskellwiki/Literate_programming