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

Safe HaskellNone




plugin :: Plugin Source #

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

  • update a global mutable state variable, which stores a tag map. It is shared across 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)