[Haskell-cafe] which tags program should I use?

Henry Laxen nadine.and.henry at pobox.com
Sun Sep 25 15:41:52 CEST 2011

Dear Group,

I have a simple question, that as far as I can tell, has never really
been well answered.  I would like to generate TAGS files for haskell
source.  Reading the http://www.haskell.org/haskellwiki/Tags page
suggests using :etags in GHCI or hasktags, or gasbag.  Of the three,
hasktags comes closest to "working" but it has (for me) a major
inconvenience, namely it finds both function definitions and type
signatures, resulting in two TAGS entries such as:

module Main where6,7
main ::24,25
main =25,26

Now when I do an emacs find-tag (I use icicles) I will always have to
choose which tag I want to visit, and the completion buffer contains
something like:

main ::

main =

Granted, this is a minor (and very specialized) complaint, but if
hasktags were to select only ONE of either the type signature (my
first choice) or the function definition, (if no type signature) this
annoyance would disappear.  

I also tried using etags, which I think would work, but it seems to
have one killer bug (feature), namely that it dies if it finds an
uninterpreted import:

  when (not is_interpreted) $
    let mName = GHC.moduleNameString (GHC.moduleName m) in
    ghcError (CmdLineError ("module '" ++ mName ++ "' is not interpreted"))

I think it would work much better if it just warned you, instead of
dying.  This makes it unusable any time you import something

Now some looking at the README of hasktags leads me to:

"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

That makes me feel a little queasy.

A google search for hasktags igloo turns up
whose title is "hasktags program needs replacement"
which makes me feel even more queasy.

So I guess my question is, what are us disciples of "the one true
editor" to do?  Thanks in advance for you sage advice.

Best wishes,
Henry Laxen

More information about the Haskell-Cafe mailing list