Giter VIP home page Giter VIP logo

haskell-sources-tags-nix's Introduction

haskell-sources-tags-nix

Get the sources for all transitive dependencies of a set of haskell packages, and generate a tags file.

Example usage

From a command line

Tags for all dependencies of a cabal project:

nix-build --arg cabalProject ./. --out-link dependencies path/to/haskell-sources-tags-nix/

Or install the package:

nix-env -f cabal-sources-tags.nix -i

and then from a cabal project:

cabal-sources-tags

From nix

Tags for a given set of packages:

let
  config = {
    packageOverrides = pkgs: rec {
      haskellPackages = pkgs.haskell.packages.ghc865.override {
        overrides = haskellPackagesNew: haskellPackagesOld: {
          my-custom-library = haskellPackagesOld.callCabal2nix "my-custom-library" ../my-custom-ibrary {};
        };
      };
    };
  };
  pkgs = import <nixpkgs> { inherit config; };
  haskellPackages = pkgs.haskellPackages;
  packages = hp: (with hp; [ turtle lens my-custom-library ]);

in
  pkgs.callPackage ../haskell-sources-tags-nix/tag-sources.nix {
    inherit pkgs haskellPackages packages;
  }

Vim configuration

set tags+=dependencies/tags

Similar projects

Advantages of this project compared to codex:

  • Simplicity: all the heavy lifting is done by Nix
  • Not limited to downloading sources from Hackage: correct sources are used even if a dependency is modified locally (like my-custom-library in the example above)

Disadvantages compared to codex:

  • Requires Nix

haskell-sources-tags-nix's People

Contributors

mebubo avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

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.