No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
haskell-indexer @ 1f9d412
patches
src
.gitmodules
ChangeLog.md
LICENSE
README.md
Setup.hs
core-kythe.cabal
default.nix
haskell-with-indexer.nix
lens-labels.nix
proto-lens-combinators.nix
proto-lens-descriptors.nix
proto-lens-protoc.nix
proto-lens.nix
serve.sh
shell.nix
simple-kythe.nix

README.md

There are two parts in this repo currently.

The first is a plugin which prints out core and emits kythe cross-links for it.

The second is a nix function which recursively indexes and creates tables for all the dependencies of a project.

Plugin Usage

Enter the environment with the plugin.

nix-shell

(This will take a while (1-2 hours) as it will build GHC).

To use the plugin.

ghc -fplugin KythePlugin -fplugin-opt KythePlugin:logs T.hs
./serve.sh logs/ localhost:8080

Then access localhost:8080 in order to view the cross linked source.

ghcWithIndexer

nix-shell haskell-with-indexer.nix
serve

Will build the conduit package by default and cross-link all its dependencies. There are some problems with the resulting directory structure but everything fundamentally works.

You can modify which package is built by changing ps.conduit in the nix file.

Examples

There are also some examples which can be rendered if kythe is installed.

./serve examples/ localhost:8080

Will render the output for 5 simple files from two projects.