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

Maintainer's Corner

Package maintainers

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, 0.4.2.0, 0.4.3.0, 0.4.4.0, 0.5.0.0, 0.5.0.1, 0.6.0.0
Change log CHANGELOG.md
Dependencies algebraic-graphs (>=0.3), ansi-terminal (>=0.9), array, base (>=4.12 && <4.20), bytestring, containers, directory, extra, filepath, ghc (>=8.6 && <9.9), 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
Category Development
Bug tracker https://github.com/wz1000/HieDb/issues
Source repo head: git clone https://github.com/wz1000/HieDb
Uploaded by wz1000 at 2024-02-15T09:23:15Z
Distributions Arch:0.4.2.0, NixOS:0.5.0.1
Reverse Dependencies 6 direct, 34 indirect [details]
Executables hiedb
Downloads 9058 total (282 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-02-15 [all 1 reports]

Readme for hiedb-0.6.0.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.