[Haskell-cafe] Announce: hothasktags

Evan Laforge qdunkan at gmail.com
Wed Apr 7 03:23:39 EDT 2010

On Thu, Apr 1, 2010 at 1:46 PM, Luke Palmer <lrpalmer at gmail.com> wrote:
> Hi,
> I'd like to draw attention to a little script I wrote.  I tend to use
> qualified imports and short names like "new" and "filter".  This makes
> hasktags pretty much useless, since it basically just guesses which
> one to go to.  hothasktags is a reimplementation of hasktags that uses
> haskell-src-exts to analyze the import structure to generate (scoped)
> tags pointing to the right definition.  I'm pretty addicted to it,
> since it provides the only functionality I miss from visual studio
> :-).
> VIm only for now, since I don't know if emacs tags format supports
> scoped tags.  I am aware that it is not perfect -- patches and bug
> reports welcome.

Hi, thanks for this, I've been wanting something like this for a long
time!  I have a suggestion and a question though:

If you prepend the tags file with "!_TAG_FILE_SORTED\t1\t ~\n" then I
think vim should be able to do a binary search on the file.

This program generates a tag for each reference to a symbol:

Derive.PitchDeriver     Derive/Derive.hs        98;"    file:Cmd/Cmd.hs
Derive.PitchDeriver     Derive/Derive.hs        98;"    file:Cmd/Play.hs
Derive.PitchDeriver     Derive/Derive.hs        98;"
... [ 20 more ] ...

The vim tag documentation says these are "static" tags, and implies
they are meant to apply to symbols only valid within the same file,
but this is clearly not the case.  Actually, the vim doc implies that
only "file:" is defined, and doesn't talk about "scoped tags" so I'm
not sure what is going on.  Anyway, whenever I go to a tag I have to
first step through a message that says "1 of 25" or so.  There's one
for each reference in the tags file, even though those are references
in other files.

What's going on?  I even checked the current docs at vim.org and they
don't mention a file:xyz form either.

More information about the Haskell-Cafe mailing list