on master help sign in
Format Cabal file with ‘cabal format’
commit83d6dcbc1519ae57a836433f90ff42a00cdf1019 authorMark Karpov <markkarpov92@gmail.com> dateFri 24 Apr 2020, 23:30 (6 years ago) parent9a3d872
4 files changed+189−175
default.nix+12−13 format.sh+3−1 ormolu.cabal+173−160 shell.nix+1−1
default.nix+12−13
@@ -54,14 +54,11 @@ let
5454 }) haskellPackages;
5555in {
5656 ormolu = haskellPackages.ormolu;
57− ormoluShell =
58− if ormoluCompiler == "ghc8101"
59− # HACK The shell doesn't compile with GHC 8.10.1
60− then haskellPackages.shellFor {
61− packages = ps: [];
62− buildInputs = [];
63− }
64− else haskellPackages.shellFor {
57+ # We put the derivations in another attribute set to avoid building them
58+ # when nix-build is run.
59+ dev = {
60+ ormoluShell =
61+ haskellPackages.shellFor {
6562 packages = ps: [
6663 ps.ormolu
6764 ];
@@ -70,11 +67,13 @@ in {
7067 haskellPackages.ghcid
7168 ];
7269 };
73− withOrmolu = haskellPackages.shellFor {
74− packages = ps: [];
75− buildInputs = [
76− haskellPackages.ormolu
77− ];
70+ withOrmolu = haskellPackages.shellFor {
71+ packages = ps: [];
72+ buildInputs = [
73+ haskellPackages.cabal-install
74+ haskellPackages.ormolu
75+ ];
76+ };
7877 };
7978 inherit ormoluOverlay ormoluCompiler;
8079 hackage = ormolizedPackages false;
format.sh+3−1
@@ -1,5 +1,5 @@
11#!/usr/bin/env nix-shell
2−#!nix-shell default.nix -A withOrmolu -i bash --pure
2+#!nix-shell default.nix -A dev.withOrmolu -i bash --pure
33#
44# Format Ormolu using current version of Ormolu.
55
@@ -7,6 +7,8 @@ set -e
77
88export LANG="C.UTF-8"
99
10+cabal format
11+
1012ormolu -m inplace $(find app -type f -name "*.hs")
1113ormolu -m inplace $(find src -type f \( -name "*.hs" -o -name "*.hs-boot" \))
1214ormolu -m inplace $(find tests -type f -name "*.hs")
ormolu.cabal+173−160
@@ -1,170 +1,183 @@
1−name: ormolu
2−version: 0.0.5.0
3−cabal-version: 1.18
4−tested-with: GHC==8.6.5, GHC==8.8.3, GHC==8.10.1
5−license: BSD3
6−license-file: LICENSE.md
7−maintainer: Mark Karpov <mark.karpov@tweag.io>
8−homepage: https://github.com/tweag/ormolu
9−bug-reports: https://github.com/tweag/ormolu/issues
10−category: Development, Formatting
11−synopsis: A formatter for Haskell source code
12−build-type: Simple
13−description: A formatter for Haskell source code.
14−extra-doc-files: CONTRIBUTING.md
15− , CHANGELOG.md
16− , DESIGN.md
17− , README.md
18−data-files: data/examples/declaration/annotation/*.hs
19− , data/examples/declaration/class/*.hs
20− , data/examples/declaration/data/*.hs
21− , data/examples/declaration/data/gadt/*.hs
22− , data/examples/declaration/default/*.hs
23− , data/examples/declaration/deriving/*.hs
24− , data/examples/declaration/foreign/*.hs
25− , data/examples/declaration/instance/*.hs
26− , data/examples/declaration/rewrite-rule/*.hs
27− , data/examples/declaration/role-annotation/*.hs
28− , data/examples/declaration/signature/complete/*.hs
29− , data/examples/declaration/signature/fixity/*.hs
30− , data/examples/declaration/signature/inline/*.hs
31− , data/examples/declaration/signature/minimal/*.hs
32− , data/examples/declaration/signature/pattern/*.hs
33− , data/examples/declaration/signature/set-cost-centre/*.hs
34− , data/examples/declaration/signature/specialize/*.hs
35− , data/examples/declaration/signature/type/*.hs
36− , data/examples/declaration/splice/*.hs
37− , data/examples/declaration/type-families/closed-type-family/*.hs
38− , data/examples/declaration/type-families/data-family/*.hs
39− , data/examples/declaration/type-families/type-family/*.hs
40− , data/examples/declaration/type-synonyms/*.hs
41− , data/examples/declaration/type/*.hs
42− , data/examples/declaration/value/function/*.hs
43− , data/examples/declaration/value/function/arrow/*.hs
44− , data/examples/declaration/value/function/comprehension/*.hs
45− , data/examples/declaration/value/function/do/*.hs
46− , data/examples/declaration/value/function/infix/*.hs
47− , data/examples/declaration/value/function/pattern/*.hs
48− , data/examples/declaration/value/other/*.hs
49− , data/examples/declaration/value/pattern-synonyms/*.hs
50− , data/examples/declaration/warning/*.hs
51− , data/examples/import/*.hs
52− , data/examples/module-header/*.hs
53− , data/examples/other/*.hs
1+cabal-version: 1.18
2+name: ormolu
3+version: 0.0.5.0
4+license: BSD3
5+license-file: LICENSE.md
6+maintainer: Mark Karpov <mark.karpov@tweag.io>
7+tested-with: ghc ==8.6.5 ghc ==8.8.3 ghc ==8.10.1
8+homepage: https://github.com/tweag/ormolu
9+bug-reports: https://github.com/tweag/ormolu/issues
10+synopsis: A formatter for Haskell source code
11+description: A formatter for Haskell source code.
12+category: Development, Formatting
13+build-type: Simple
14+data-files:
15+ data/examples/declaration/annotation/*.hs
16+ data/examples/declaration/class/*.hs
17+ data/examples/declaration/data/*.hs
18+ data/examples/declaration/data/gadt/*.hs
19+ data/examples/declaration/default/*.hs
20+ data/examples/declaration/deriving/*.hs
21+ data/examples/declaration/foreign/*.hs
22+ data/examples/declaration/instance/*.hs
23+ data/examples/declaration/rewrite-rule/*.hs
24+ data/examples/declaration/role-annotation/*.hs
25+ data/examples/declaration/signature/complete/*.hs
26+ data/examples/declaration/signature/fixity/*.hs
27+ data/examples/declaration/signature/inline/*.hs
28+ data/examples/declaration/signature/minimal/*.hs
29+ data/examples/declaration/signature/pattern/*.hs
30+ data/examples/declaration/signature/set-cost-centre/*.hs
31+ data/examples/declaration/signature/specialize/*.hs
32+ data/examples/declaration/signature/type/*.hs
33+ data/examples/declaration/splice/*.hs
34+ data/examples/declaration/type-families/closed-type-family/*.hs
35+ data/examples/declaration/type-families/data-family/*.hs
36+ data/examples/declaration/type-families/type-family/*.hs
37+ data/examples/declaration/type-synonyms/*.hs
38+ data/examples/declaration/type/*.hs
39+ data/examples/declaration/value/function/*.hs
40+ data/examples/declaration/value/function/arrow/*.hs
41+ data/examples/declaration/value/function/comprehension/*.hs
42+ data/examples/declaration/value/function/do/*.hs
43+ data/examples/declaration/value/function/infix/*.hs
44+ data/examples/declaration/value/function/pattern/*.hs
45+ data/examples/declaration/value/other/*.hs
46+ data/examples/declaration/value/pattern-synonyms/*.hs
47+ data/examples/declaration/warning/*.hs
48+ data/examples/import/*.hs
49+ data/examples/module-header/*.hs
50+ data/examples/other/*.hs
51+
52+extra-doc-files:
53+ CONTRIBUTING.md
54+ CHANGELOG.md
55+ DESIGN.md
56+ README.md
5457
5558source-repository head
56− type: git
57− location: https://github.com/tweag/ormolu.git
59+ type: git
60+ location: https://github.com/tweag/ormolu.git
5861
5962flag dev
60− description: Turn on development settings.
61− manual: True
62− default: False
63+ description: Turn on development settings.
64+ default: False
65+ manual: True
6366
6467library
65− hs-source-dirs: src
66− build-depends: base >= 4.12 && < 5.0
67− , bytestring >= 0.2 && < 0.11
68− , containers >= 0.5 && < 0.7
69− , dlist >= 0.8 && < 0.9
70− , exceptions >= 0.6 && < 0.11
71− , ghc-lib-parser >= 8.10 && < 8.11
72− , mtl >= 2.0 && < 3.0
73− , syb >= 0.7 && < 0.8
74− , text >= 0.2 && < 1.3
75− exposed-modules: Ormolu
76− , Ormolu.Config
77− , Ormolu.Diff
78− , Ormolu.Exception
79− , Ormolu.Imports
80− , Ormolu.Parser
81− , Ormolu.Parser.Anns
82− , Ormolu.Parser.CommentStream
83− , Ormolu.Parser.Pragma
84− , Ormolu.Parser.Result
85− , Ormolu.Parser.Shebang
86− , Ormolu.Printer
87− , Ormolu.Printer.Combinators
88− , Ormolu.Printer.Comments
89− , Ormolu.Printer.Internal
90− , Ormolu.Printer.Meat.Common
91− , Ormolu.Printer.Meat.Declaration
92− , Ormolu.Printer.Meat.Declaration.Annotation
93− , Ormolu.Printer.Meat.Declaration.Class
94− , Ormolu.Printer.Meat.Declaration.Data
95− , Ormolu.Printer.Meat.Declaration.Default
96− , Ormolu.Printer.Meat.Declaration.Foreign
97− , Ormolu.Printer.Meat.Declaration.Instance
98− , Ormolu.Printer.Meat.Declaration.RoleAnnotation
99− , Ormolu.Printer.Meat.Declaration.Rule
100− , Ormolu.Printer.Meat.Declaration.Signature
101− , Ormolu.Printer.Meat.Declaration.Splice
102− , Ormolu.Printer.Meat.Declaration.Type
103− , Ormolu.Printer.Meat.Declaration.TypeFamily
104− , Ormolu.Printer.Meat.Declaration.Value
105− , Ormolu.Printer.Meat.Declaration.Warning
106− , Ormolu.Printer.Meat.ImportExport
107− , Ormolu.Printer.Meat.Module
108− , Ormolu.Printer.Meat.Pragma
109− , Ormolu.Printer.Meat.Type
110− , Ormolu.Printer.Operators
111− , Ormolu.Printer.SpanStream
112− , Ormolu.Processing.Common
113− , Ormolu.Processing.Cpp
114− , Ormolu.Processing.Postprocess
115− , Ormolu.Processing.Preprocess
116− , Ormolu.Utils
117− other-modules: GHC
118− , GHC.DynFlags
119− if flag(dev)
120− ghc-options: -Wall -Werror -Wcompat
121− -Wincomplete-record-updates
122− -Wincomplete-uni-patterns
123− -Wnoncanonical-monad-instances
124− -- https://github.com/haskell/haddock/issues/1116
125− -Wno-missing-home-modules
126− else
127− ghc-options: -O2 -Wall
128− default-language: Haskell2010
68+ exposed-modules:
69+ Ormolu
70+ Ormolu.Config
71+ Ormolu.Diff
72+ Ormolu.Exception
73+ Ormolu.Imports
74+ Ormolu.Parser
75+ Ormolu.Parser.Anns
76+ Ormolu.Parser.CommentStream
77+ Ormolu.Parser.Pragma
78+ Ormolu.Parser.Result
79+ Ormolu.Parser.Shebang
80+ Ormolu.Printer
81+ Ormolu.Printer.Combinators
82+ Ormolu.Printer.Comments
83+ Ormolu.Printer.Internal
84+ Ormolu.Printer.Meat.Common
85+ Ormolu.Printer.Meat.Declaration
86+ Ormolu.Printer.Meat.Declaration.Annotation
87+ Ormolu.Printer.Meat.Declaration.Class
88+ Ormolu.Printer.Meat.Declaration.Data
89+ Ormolu.Printer.Meat.Declaration.Default
90+ Ormolu.Printer.Meat.Declaration.Foreign
91+ Ormolu.Printer.Meat.Declaration.Instance
92+ Ormolu.Printer.Meat.Declaration.RoleAnnotation
93+ Ormolu.Printer.Meat.Declaration.Rule
94+ Ormolu.Printer.Meat.Declaration.Signature
95+ Ormolu.Printer.Meat.Declaration.Splice
96+ Ormolu.Printer.Meat.Declaration.Type
97+ Ormolu.Printer.Meat.Declaration.TypeFamily
98+ Ormolu.Printer.Meat.Declaration.Value
99+ Ormolu.Printer.Meat.Declaration.Warning
100+ Ormolu.Printer.Meat.ImportExport
101+ Ormolu.Printer.Meat.Module
102+ Ormolu.Printer.Meat.Pragma
103+ Ormolu.Printer.Meat.Type
104+ Ormolu.Printer.Operators
105+ Ormolu.Printer.SpanStream
106+ Ormolu.Processing.Common
107+ Ormolu.Processing.Cpp
108+ Ormolu.Processing.Postprocess
109+ Ormolu.Processing.Preprocess
110+ Ormolu.Utils
129111
130−test-suite tests
131− main-is: Spec.hs
132− hs-source-dirs: tests
133− type: exitcode-stdio-1.0
134− build-depends: base >= 4.12 && < 5.0
135− , containers >= 0.5 && < 0.7
136− , filepath >= 1.2 && < 1.5
137− , hspec >= 2.0 && < 3.0
138− , ormolu
139− , path >= 0.6 && < 0.8
140− , path-io >= 1.4.2 && < 2.0
141− , text >= 0.2 && < 1.3
142− build-tools: hspec-discover >= 2.0 && < 3.0
143− other-modules:
144− Ormolu.Parser.PragmaSpec
145− , Ormolu.PrinterSpec
112+ hs-source-dirs: src
113+ other-modules:
114+ GHC
115+ GHC.DynFlags
116+
117+ default-language: Haskell2010
118+ build-depends:
119+ base >=4.12 && <5.0,
120+ bytestring >=0.2 && <0.11,
121+ containers >=0.5 && <0.7,
122+ dlist >=0.8 && <0.9,
123+ exceptions >=0.6 && <0.11,
124+ ghc-lib-parser >=8.10 && <8.11,
125+ mtl >=2.0 && <3.0,
126+ syb >=0.7 && <0.8,
127+ text >=0.2 && <1.3
146128
147− if flag(dev)
148− ghc-options: -Wall -Werror
149− else
150− ghc-options: -O2 -Wall
151− default-language: Haskell2010
129+ if flag(dev)
130+ ghc-options:
131+ -Wall -Werror -Wcompat -Wincomplete-record-updates
132+ -Wincomplete-uni-patterns -Wnoncanonical-monad-instances
133+ -Wno-missing-home-modules
134+
135+ else
136+ ghc-options: -O2 -Wall
152137
153138executable ormolu
154− main-is: Main.hs
155− hs-source-dirs: app
156− build-depends: base >= 4.12 && < 5.0
157− , ghc-lib-parser >= 8.10 && < 8.11
158− , gitrev >= 1.3 && < 1.4
159− , optparse-applicative >= 0.14 && < 0.16
160− , ormolu
161− , text >= 0.2 && < 1.3
162− other-modules: Paths_ormolu
163− if flag(dev)
164− ghc-options: -Wall -Werror -Wcompat
165− -Wincomplete-record-updates
166− -Wincomplete-uni-patterns
167− -Wnoncanonical-monad-instances
168− else
169− ghc-options: -O2 -Wall -rtsopts
170− default-language: Haskell2010
139+ main-is: Main.hs
140+ hs-source-dirs: app
141+ other-modules: Paths_ormolu
142+ default-language: Haskell2010
143+ build-depends:
144+ base >=4.12 && <5.0,
145+ ghc-lib-parser >=8.10 && <8.11,
146+ gitrev >=1.3 && <1.4,
147+ optparse-applicative >=0.14 && <0.16,
148+ ormolu -any,
149+ text >=0.2 && <1.3
150+
151+ if flag(dev)
152+ ghc-options:
153+ -Wall -Werror -Wcompat -Wincomplete-record-updates
154+ -Wincomplete-uni-patterns -Wnoncanonical-monad-instances
155+
156+ else
157+ ghc-options: -O2 -Wall -rtsopts
158+
159+test-suite tests
160+ type: exitcode-stdio-1.0
161+ main-is: Spec.hs
162+ build-tools: hspec-discover >=2.0 && <3.0
163+ hs-source-dirs: tests
164+ other-modules:
165+ Ormolu.Parser.PragmaSpec
166+ Ormolu.PrinterSpec
167+
168+ default-language: Haskell2010
169+ build-depends:
170+ base >=4.12 && <5.0,
171+ containers >=0.5 && <0.7,
172+ filepath >=1.2 && <1.5,
173+ hspec >=2.0 && <3.0,
174+ ormolu -any,
175+ path >=0.6 && <0.8,
176+ path-io >=1.4.2 && <2.0,
177+ text >=0.2 && <1.3
178+
179+ if flag(dev)
180+ ghc-options: -Wall -Werror
181+
182+ else
183+ ghc-options: -O2 -Wall
shell.nix+1−1
@@ -1,3 +1,3 @@
11{ pkgs ? (import ./nix/nixpkgs) }:
22
3−(import ./default.nix { inherit pkgs; }).ormoluShell
3+(import ./default.nix { inherit pkgs; }).dev.ormoluShell