-
Notifications
You must be signed in to change notification settings - Fork 19
/
package.yaml
129 lines (116 loc) · 3.21 KB
/
package.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: diagnose
version: 2.5.1
github: "mesabloo/diagnose"
license: BSD3
author: "Ghilain Bergeron"
copyright: "2021-2022 Ghilain Bergeron"
category: "Error Reporting"
dependencies:
- base >= 4.7 && < 5
- array >= 0.5 && < 0.6
- data-default >= 0.7 && < 1
- dlist >= 1.0 && < 1.1
- hashable >= 1.3 && < 2
- prettyprinter >= 1.7.0 && < 2
- prettyprinter-ansi-terminal >= 1.1.2 && < 2
- unordered-containers >= 0.2.11 && < 0.3
- wcwidth >= 0.0.1 && <1
default-extensions:
- OverloadedStrings
- LambdaCase
- BlockArguments
library:
source-dirs: src
exposed-modules:
- Error.Diagnose
- Error.Diagnose.Diagnostic
- Error.Diagnose.Position
- Error.Diagnose.Pretty
- Error.Diagnose.Report
- Error.Diagnose.Style
when:
- condition: flag(megaparsec-compat)
exposed-modules:
- Error.Diagnose.Compat.Megaparsec
- condition: flag(parsec-compat)
exposed-modules:
- Error.Diagnose.Compat.Parsec
flags:
json:
description: "Allows exporting diagnostics as JSON.
This is disabled by default as this relies on the very heavy dependency Aeson."
manual: true
default: false
megaparsec-compat:
description: "Includes a small compatibility layer (in the module `Error.Diagnose.Compat.Megaparsec`) to transform megaparsec errors into reports for this library."
manual: true
default: false
parsec-compat:
description: "Includes a small compatibility layer (in the module `Error.Diagnose.Compat.Parsec`) to transform parsec errors into reports for this library."
manual: true
default: false
# do the same for other parsing libraries like parsec or attoparsec
when:
- condition: flag(json)
dependencies:
- aeson >= 1.5 && <3
- bytestring >= 0.9 && < 1
cpp-options:
- -DUSE_AESON
- condition: flag(megaparsec-compat)
dependencies:
- megaparsec >= 9.0.0
- containers == 0.6.*
- condition: flag(parsec-compat)
dependencies:
- parsec >= 3.1.14
ghc-options:
- -Wall
- -Wextra
# - -Wmissing-local-signatures
# - -Wmonomorphism-restriction
extra-source-files:
- README.md
tests:
diagnose-rendering-tests:
main: Spec.hs
source-dirs: test/rendering
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- diagnose
diagnose-megaparsec-tests:
main: Spec.hs
source-dirs: test/megaparsec
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- diagnose
- text >= 1.2 && < 3
when:
- condition: ! '!(flag(megaparsec-compat))'
buildable: false
diagnose-parsec-tests:
main: Spec.hs
source-dirs: test/parsec
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- diagnose
- text >= 1.2 && < 3
when:
- condition: ! '!(flag(parsec-compat))'
buildable: false
# This is put at the end for convenience.
synopsis: Beautiful error reporting done easily
description: |
This package provides a simple way of getting beautiful compiler/interpreter errors
using a very simple interface for the programmer.
A quick tutorial is available in the module "Error.Diagnose", which goes on most of the basis
of how to use it.