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]

Downloads

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

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.3.0.1, 0.4.0.0, 0.4.1.0
Change log CHANGELOG.md
Dependencies algebraic-graphs (<0.7), ansi-terminal, array, base (>=4.12 && <4.17), bytestring, containers, directory, extra, filepath, ghc (>=8.6), ghc-paths, hie-compat, hiedb, lucid, mtl, optparse-applicative, sqlite-simple, terminal-size, text [details]
License BSD-3-Clause
Copyright Zubin Duggal
Author Zubin Duggal
Maintainer zubin.duggal@gmail.com
Revised Revision 2 made by sjakobi at 2022-06-21T16:07:44Z
Category Development
Bug tracker https://github.com/wz1000/HieDb/issues
Source repo head: git clone https://github.com/wz1000/HieDb
Uploaded by wz1000 at 2021-09-02T08:05:43Z
Distributions Arch:0.4.1.0, NixOS:0.4.1.0
Executables hiedb
Downloads 5468 total (175 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2021-09-02 [all 1 reports]

Readme for hiedb-0.4.1.0

[back to package description]

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

Compiling

Prerequisites

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

Procedure

$ cabal install hiedb

Usage

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>

Indexing

$ 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

Querying

  • 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.