1{ pkgs ? (import ./nix/nixpkgs { inherit system; })
2, system ? builtins.currentSystem
3, ormoluCompiler ? "ghc884" # the shell doesn't work with ghc8101 yet
7 source = pkgs.lib.sourceByRegex ./. [
15 haskellPackages = pkgs.haskell.packages.${ormoluCompiler}.override {
16 overrides = ormoluOverlay;
18 ormoluOverlay = self: super: {
19 "ormolu" = super.callCabal2nixWithOptions "ormolu" source "-fdev" { };
21 ormolize = import ./nix/ormolize {
23 inherit haskellPackages;
40 ] ++ (if ormoluCompiler == "ghc8101" then [] else ["lens"]);
41 ormolizedPackages = doCheck:
42 pkgs.lib.mapAttrs (name: p: ormolize {
46 if pkgs.lib.lists.any (x: x == name) expectedFailures
47 then ./expected-failures + "/${name}.txt"
51 ormolu = haskellPackages.ormolu;
52 # We put the derivations in another attribute set to avoid building them
53 # when nix-build is run.
56 haskellPackages.shellFor {
61 haskellPackages.cabal-install
65 withOrmolu = haskellPackages.shellFor {
68 haskellPackages.cabal-install
69 haskellPackages.ormolu
73 inherit ormoluOverlay ormoluCompiler;
74 hackage = ormolizedPackages false;
75 hackageTests = with pkgs.lib; pkgs.recurseIntoAttrs (
118 in listToAttrs (map (p: nameValuePair p (ormolizedPackages true).${p}) ps)
120 regionTests = pkgs.stdenv.mkDerivation {
121 name = "ormolu-region-tests";
122 src = ./region-tests;
124 haskellPackages.ormolu
129 cp src.hs result-all-implicit.hs
130 ormolu --check-idempotence --mode inplace result-all-implicit.hs
131 cp src.hs result-all-explicit.hs
132 ormolu --check-idempotence --mode inplace --start-line 1 --end-line 18 result-all-explicit.hs
133 cp src.hs result-only-start.hs
134 ormolu --check-idempotence --mode inplace --start-line 1 result-only-start.hs
135 cp src.hs result-only-end.hs
136 ormolu --check-idempotence --mode inplace --end-line 18 result-only-end.hs
137 cp src.hs result-6-7.hs
138 ormolu --check-idempotence --mode inplace --start-line 6 --end-line 7 result-6-7.hs
139 cp src.hs result-6-8.hs
140 ormolu --check-idempotence --mode inplace --start-line 6 --end-line 8 result-6-8.hs
141 cp src.hs result-9-12.hs
142 ormolu --check-idempotence --mode inplace --start-line 9 --end-line 12 result-9-12.hs
143 cp src.hs result-17-18.hs
144 ormolu --check-idempotence --mode inplace --start-line 17 --end-line 18 result-17-18.hs
147 echo result-all-implicit.hs
148 diff --color=always expected-result-all.hs result-all-implicit.hs
149 echo result-all-explicit.hs
150 diff --color=always expected-result-all.hs result-all-explicit.hs
151 echo result-only-start.hs
152 diff --color=always expected-result-all.hs result-only-start.hs
153 echo result-only-end.hs
154 diff --color=always expected-result-all.hs result-only-end.hs
156 diff --color=always expected-result-6-7.hs result-6-7.hs
158 diff --color=always expected-result-6-8.hs result-6-8.hs
160 diff --color=always expected-result-9-12.hs result-9-12.hs
162 diff --color=always expected-result-17-18.hs result-17-18.hs
166 find . -name '*.hs' -exec cp --parents {} $out \;
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list