Commit Graph

282 Commits

Author SHA1 Message Date
sphaso
174a0847d4 Keep comma on multiple GADT declaration 2019-07-20 22:31:54 +02:00
gabriele.lana
8d52d87d72 Preserve operators promotion (single quote)
Fixes #222
2019-07-20 22:07:47 +02:00
sphaso
0065a9baf6 Add space after minus for ‘NegApp’ 2019-07-20 21:53:45 +02:00
waddlaw
68bbc647f7 Always surround the class to derive with parentheses 2019-07-20 21:34:50 +02:00
Daniel Krueger
2cae331d1b Insert space before double dot of arithmetic sequence
This style is arguably ugly, but solves the issue when the type signatures
mess with the double dot. Will do for now.
2019-07-20 20:42:41 +02:00
mrkkrp
63478a0ba4
Drop shebang from the ormolize.sh script
This one is likely to incorrect in the context of the build.
2019-07-15 11:41:45 +02:00
mrkkrp
c5b9fa1168 Add an option to tolerate CPP pragmas 2019-07-14 13:14:55 +02:00
mrkkrp
62cbd42ddd Improve error pretty printing 2019-07-14 13:14:55 +02:00
mrkkrp
78e8dd830a Make sure we always get both original and formatted files 2019-07-14 13:14:55 +02:00
mrkkrp
7a9aab77b3 Add nix expression for reformatting sources of arbitrary packages
See the description in readme.
2019-07-14 13:14:55 +02:00
mrkkrp
a444abc764 Update ‘CONTRIBUTING.md’ 2019-07-13 21:51:45 +02:00
mrkkrp
53c3044ffc
Add a note about ‘ApplicativeStmt’
[skip ci]
2019-07-13 21:48:44 +02:00
waddlaw
e663070623 An option to display “manual” extensions 2019-07-13 21:42:06 +02:00
mrkkrp
fd5cee6161 Blacklist extensions instead of whitelisting them 2019-07-13 21:16:09 +02:00
Basile Henry
b2f49a7693 Support single line where clauses 2019-07-13 19:57:10 +02:00
Basile Henry
0baa898f30 Add tests for let/where interaction #177 2019-07-13 19:57:10 +02:00
Vladislav Zavialov
fd4fa7f33e Comma-separated SPECIALIZE types 2019-07-13 19:56:59 +02:00
Vladislav Zavialov
984e4b674f Keep FunBind strictness 2019-07-13 19:38:46 +02:00
Vladislav Zavialov
63f4d1f4f4 Include source locations in diff report 2019-07-13 19:37:22 +02:00
Vladislav Zavialov
b03f989f36 Bang patterns and splices in lambdas 2019-07-13 17:45:52 +02:00
waddlaw
a7265df09e Fix printing of backticks around wildcards in operator position 2019-07-12 18:06:21 +02:00
yumiova
9e880c5299 Support transform list comprehensions 2019-07-12 17:49:16 +02:00
yumiova
069ae69a5b Support data types with infix & multi-line declarations
Fix the bug where data types with infix names & names layed out over multiple lines get incorrectly formatted. Specifically, reuse `p_infixDefHelper` to easily take care of this behavior.
2019-07-12 17:19:05 +02:00
PanAeon
c2dd159c9c Implement rendering of rewrite rule declarations 2019-07-12 17:07:54 +02:00
waddlaw
28c35cc8df Drop the mention of configuration file from readme 2019-07-08 22:30:10 +02:00
mrkkrp
a2b75213b3 Adjust rendering of kind signatures and implicit parameters
Previously there was no space between type variable and ‘::’, which is why I
started digging this in the first place.
2019-07-08 22:22:51 +02:00
mrkkrp
99619d681c Fix rendering of implicit bidirectional pattern synonyms
Previously we forgot to enable the extension, and apparently we were just
defining a function called ‘pattern’.
2019-07-08 21:46:24 +02:00
mrkkrp
3d74f2fb53 Shift ‘in’ in ‘let’ to the right to allow placing it in do blocks
It is a bit uncommon to format it like this, but this way it can be placed
without changes in do blocks as well. I think it's the right way go about
that bug.
2019-07-07 14:13:40 +02:00
mrkkrp
01486edadb Enable some non-conflicting language extensions by default 2019-07-07 13:53:59 +02:00
mrkkrp
c201862f11 Drop ‘yaml’ configuration 2019-07-07 13:53:59 +02:00
mrkkrp
d63eeea3df Mention name of file even when rendered version fails to parse
Without this info it's hard to know which file from a bulk is problematic.
2019-07-07 13:53:27 +02:00
mrkkrp
d82d607b3a Implement ‘VarBr’ 2019-07-07 13:40:48 +02:00
Tuncer Ayaz
cad7e40ae5 Allow reading from stdin 2019-07-07 12:25:22 +02:00
mrkkrp
3be1adbfc7
Add an example for case expression with preceding comment (now fixed) 2019-07-07 00:13:59 +02:00
mrkkrp
d7d4592b8e Improve handling of newlines
Now the printing code can correctly detect when hanging constructions should
be placed in non-hanging fashion from the way they are placed in input
source code.
2019-07-07 00:04:33 +02:00
mrkkrp
c9f3320631
Fix a typo
[skip ci]
2019-07-06 22:26:30 +02:00
mrkkrp
94ef8f4f75
Drop ‘normalizePragma’
AFAIU it's not used anymore because we handle LANGUAGE pragmas specially
while all other pragmas are parsed properly and do not end up as comments.
2019-07-05 21:04:46 +02:00
mrkkrp
875c79d88d Implement dropping of trailing whitespace in comments 2019-07-05 21:01:45 +02:00
Dominik Kellner
6583ecb3f0 Keep space in lambdas with lazyness annotation
Fixes #144
2019-07-05 20:14:16 +02:00
waddlaw
ae40a33507 Sort language pragmas and fix their placement in modules
The approach we take here is parsing of language pragmas on creation of
comment stream and then pretty-printing them in a separate block.
2019-07-05 20:03:31 +02:00
mrkkrp
693814ca8c
Drop ‘EXAMPLES.md’
Now we're checking against many concrete examples, so this file can be
dropped.
2019-07-05 19:11:35 +02:00
mrkkrp
7c7edb8a75
Fix a typo in the readme
[skip ci]
2019-07-02 21:29:07 +02:00
mrkkrp
05e420159a
Replace current year with the word "present"
[skip ci]

Saves a lot of effort updating all those thingies every year.
2019-07-02 21:27:45 +02:00
mrkkrp
f8bad3a855 Only drop indentation present for every line in multiline comments 2019-07-01 00:07:54 +02:00
Basile Henry
faf3d86f14 Recognize gaps between comment blocks 2019-06-30 22:59:21 +02:00
mrkkrp
733e8086d4 Fix comparison of prelude imports 2019-06-30 22:42:32 +02:00
mrkkrp
8c27549532 Fix rendering of type equalities
Please see the comment in the diff.
2019-06-28 23:41:37 +02:00
mrkkrp
057977d60c Insert newlines after annotations in certain cases
Just like other pragmas annotations will now “stick” to the definitions they
pertain to. If it's not possible, there will be a newline separating them
from other declarations in the module.
2019-06-28 21:37:38 +02:00
yumiova
ba64967c03 Implement properly indented constraint contexts
Essentially, it simply indents the constraints one layer, instead of hanging the constraints off of `class` or `instance`.
2019-06-28 21:09:15 +02:00
Dmitry Ivanov
c5ed521e35 Add more function guards tests 2019-06-27 21:14:22 +02:00