Generate tags
(ctags) or TAGS
(etags) file for a bunch of Haskell files.
These files are used by editors (e.g. TAGS
by Emacs) to implement jump-to-definition (e.g. M-.
in Emacs).
In contrast to hasktags, hs-tags
uses the GHC Haskell parser to read the Haskell files and find definition sites.
Example use:
find src -name "*.*hs" | xargs \
hs-tags --cabal Foo.cabal -i dist/build/autogen/cabal_macros.h -e
Creates Emacs TAGS
from Haskell files residing in folder src/
of the project as defined in Foo.cabal
, using preprocessor definitions from dist/build/autogen/cabal_macros.h
.
Command line reference:
hs-tags
--help Show help.
-c[FILE] --ctags[=FILE] Generate ctags (default file=tags)
-e[FILE] --etags[=FILE] Generate etags (default file=TAGS)
-i FILE --include=FILE File to #include
-I DIRECTORY Directory in the include path
--cabal=CABAL FILE Cabal configuration to load additional
language options from
(library options are used)
Some related projects:
-
hasktags: popular ctags and etags generator, using its own parser.
-
fast-tags: ctags and etags, fast, incremental, using its own parser.
-
ghc-tags-plugin: ctags and etags emitted during compilation by a ghc-plugin.
-
hothasktags (unmaintained?): ctags generator, using the haskell-src-exts parser.
-
htags: ctags for Haskell 98, using the haskell-src parser.