
if we're talking interim solutions, also try something like: echo ":ctags" | ghci -v0 Main.hs And some more programming actually gave me that good reason once again: the given ghci command only gives tags for exported definitions. This just plain sucks for any reasonably sized module. :)
true. if you look at the code for the :browse command just following the tag-related code, you'll see options for export-only or all top-level bindings (compare listTags with browseModule). i didn't adapt that for :ctags, but someone else could. having lots of useful example code nearby was another reason for extending ghci, rather than starting from scratch;-) but you also have to keep in mind that haskell isn't c. as an extreme example, there are people out there naming all their major types T, using qualified names to disambiguate Heap.T from Tree.T. as a less extreme example, many haskellers feel free to reuse non-exported names all over their projects. for the first example, the typical "offer-a-menu-of-all-matching-tags" is not all that helpful - i'd prefer to see the qualified tags. for the second example, the menu of tags that aren't even in scope is just plain annoying - i'd just want to see/jump to the local tag (which means that tags for all local defs would have to be generated, but only used when in scope). these are just two examples of where pattern-based tags files are not helpful; as another one, think of type class methods: if i'm hovering over a list monad's return, i'd want to jump to the monad instance for lists. so, for haskell, i'd like to see type- and module-aware tags. etc, etc. i guess what i'm trying to say is: current ghc-api-based tagsfile generators need lots more work. but working on pattern-based generators is moving in the wrong direction, if you are interested in that kind of semantics-aware ide. the current code, whether for :ctags or for the standalone variant, is just a starting point. it can be extended quite a bit without having to start from scratch, i think, but if someone has better starting points, that's fine with me. i just want to be able to use the tools!-) claus