hiedb: Generates a references DB from .hie files

[ bsd3, development, library, program ] [ Propose Tags ]

Tool and library to index and query a collection of `.hie` files

[Skip to Readme]


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS],,,,,,,
Change log CHANGELOG.md
Dependencies algebraic-graphs (>=0.3 && <0.7), ansi-terminal (>=0.9), array, base (>=4.12 && <4.19), bytestring, containers, directory, extra, filepath, ghc (>=8.6), ghc-paths, hie-compat (>=0.3 && <0.4), hiedb, lucid, mtl, optparse-applicative, sqlite-simple, terminal-size (>=0.2), text [details]
License BSD-3-Clause
Copyright Zubin Duggal
Author Zubin Duggal
Maintainer zubin.duggal@gmail.com
Revised Revision 1 made by wz1000 at 2023-03-22T09:23:51Z
Category Development
Bug tracker https://github.com/wz1000/HieDb/issues
Source repo head: git clone https://github.com/wz1000/HieDb
Uploaded by wz1000 at 2023-03-22T09:13:51Z
Distributions Arch:, NixOS:
Reverse Dependencies 5 direct, 34 indirect [details]
Executables hiedb
Downloads 8016 total (136 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2023-03-22 [all 1 reports]

Readme for hiedb-

[back to package description]

HIE DB - A tool to index and query .hie files



  • Recent version of GHC 8.8/HEAD which includes support for .hie files
  • cabal >=


$ cabal install hiedb


Generating .hie files

Compile any package with ghc options -fwrite-ide-info and optionally, -hiedir <dir>. This will generate .hie files and save them in <dir>


$ hiedb -D <db-loc> index <hiedir>

You can omit <db-loc>, in which case it will default to the environment variable HIEDB, or if that is not defined, $XDG_DATA_DIR/default_$DBVERSION.hiedb


  • Looking up references for a name(value/data constructor):
    $ hiedb -D <db-loc> name-refs <NAME> [MODULE]
  • Looking up references for a type:
    $ hiedb -D <db-loc> type-refs <NAME> [MODULE]

MODULE is the module the name was originaly defined in.

  • Looking up references for a symbol at a particular location:
    $ hiedb -D -<db-loc> point-refs (-f|--hiefile HIEFILE) SLINE SCOL [ELINE] [ECOL]  
    $ hiedb -D -<db-loc> point-refs MODULE [-u|--unit-id UNITID] SLINE SCOL [ELINE] [ECOL]

You can either lookup references for a Module that is already indexed, or lookup references for a point in a .hie file directly, which will be (re)indexed.