ghc-tags-plugin-0.1.3.0: A compiler plugin which generates tags file from GHC syntax tree.

Safe HaskellNone
LanguageHaskell2010

Plugin.GhcTags

Synopsis

Documentation

plugin :: Plugin Source #

The GhcTags plugin. It will run for every compiled module and have access to parsed syntax tree. It will inpect it and:

  • update a global mutable state variable, which stores a tag map. It is shared accross modules compiled in the same ghc run.
  • update tags file.

The global mutable variable save us from parsing the tags file for every compiled module.

The syntax tree is left unchanged.

The tags file will contain location information about:

  • top level terms
  • data types
  • record fields
  • type synonyms
  • type classes
  • type class members
  • type class instances
  • type families (standalone and associated)
  • type family instances (standalone and associated)
  • data type families (standalone and associated)
  • data type families instances (standalone and associated)
  • data type family instances constructors (standalone and associated)