Coder Social home page Coder Social logo

haskell-navigation's Introduction

Haskell navigation

This repository is an attempt to provide tools for easier Haskell source code navigation. It uses haskell-indexer project as a way to get information about source code.

Index a package

To index a package you need to do the following:

  1. Build this project with stack build, so you'll get query-tool and kythe-to-call-graph

  2. Build ghc_kythe_wrapper with stack build haskell-indexer-pipeline-ghckythe-wrapper (Stack currently doesn't build Github project packages by default)

  3. Index your package with

    ./index.hs <PATH-TO-YOUR-PROJECT> <CALL-GRAPH-FILE-NAME>
    

    where <PATH-TO-YOUR-PROJECT> is a path pointing to your package directory containing a Stack project (i.e. stack.yaml) and <CALL-GRAPH-FILE-NAME> should point to a file where you'll store the resulting call graph

Please note that package indexing takes some time and requires a bit of space as currently it rebuilds a package "from scratch" starting from an empty $STACK_ROOT so any of required Stackage dependencies will get indexed.

Having done all of that you should be able to run query-tool with the call graph you've created.

haskell-navigation's People

Contributors

qrilka avatar

Stargazers

John Arthur avatar  avatar Dmitry Malikov avatar Justin Le avatar Marco Z avatar  avatar chessai avatar Remy Goldschmidt avatar  avatar Matthew Pickering avatar Alexey Kiryushin avatar

Watchers

 avatar Alan Zimmerman avatar Alexey Kiryushin avatar  avatar  avatar

haskell-navigation's Issues

Incremental indexing

Currently index.hs indexes all dependencies from scratch and this doesn't make sense when indexing multiple projects sharing some dependencies and also for reindexing later code versions

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.