Lennart Spitzner
7d84705e7a
Fix let-in-expr non-idempotent comment placement
2023-08-31 11:59:35 +00:00
Lennart Spitzner
15fc8ec332
Add hardcoded fixity for aeson, Removing one clashing
2023-08-31 11:59:33 +00:00
Lennart Spitzner
28e3ec18a3
Implement new config flag UnknownOperatorHandling
2023-08-31 13:59:29 +02:00
Lennart Spitzner
dbc4266f18
Fix import sorting
2023-08-28 15:26:16 +00:00
Lennart Spitzner
d5f1deaa3d
Stop duplicating commas for splices inside list
2023-06-26 15:53:26 +00:00
Lennart Spitzner
b6da307ecc
Stop using single-line layout for records defs with comms
2023-06-26 15:53:26 +00:00
Lennart Spitzner
d3d3b90558
Hardcode two more operator precedences
2023-06-21 15:18:44 +00:00
Lennart Spitzner
9737cb3adc
Allow case-of Blockargument operand with par-spacing
2023-06-21 13:04:34 +00:00
Lennart Spitzner
9d14407191
Fix interaction of do-block with ExprWithTySig
2023-06-21 09:26:36 +00:00
Lennart Spitzner
628ab81bc9
Set proper indentation base level for operands
2023-06-20 17:06:50 +00:00
Lennart Spitzner
a6e187e962
Fix multiline-list indentation past comma level
2023-06-20 17:06:50 +00:00
Lennart Spitzner
278e0275f2
Allow parspacing for lambdacase after operator
2023-06-20 17:06:50 +00:00
Lennart Spitzner
7bbbea728d
Fix another two comment spacing special-cases using hacks
...
Whole thing is ugly. Exactprint decided to not include a proper
delta for that one comment, so needed a special workaround that
then needs special exceptions too.
The whole thing is a mess at this point and needs a re-think.
At least we now have a proper test-suite for these kinds of
problems.
2023-05-30 11:29:40 +00:00
Lennart Spitzner
49a2529a5b
Fix exactprinting fallback for inline splice
2023-05-30 08:44:42 +00:00
Lennart Spitzner
4ed3a2f53d
Fix a missing comment case with MultiWayIf
2023-05-29 21:00:10 +00:00
Lennart Spitzner
03e578f72c
Refactor file/module structure again again
2023-05-29 20:44:01 +00:00
Lennart Spitzner
b3f8317e99
Fix minimize-parens feature, Add a few basic tests
2023-05-29 20:44:01 +00:00
Lennart Spitzner
54043ca9ba
Fix empty do-block error call
2023-05-29 20:44:01 +00:00
Lennart Spitzner
10dc48b74d
Do not retain newlines when refactoring list into single line
2023-05-29 20:44:01 +00:00
Lennart Spitzner
48522b596c
Fix end-of-decl comment spacing issue
2023-05-29 20:44:01 +00:00
Lennart Spitzner
5e5433f33a
Fix PRMMinimize behaviour on simple paren'ed expressions
2023-05-29 20:44:01 +00:00
Lennart Spitzner
5481e5015f
Make use of OpTree for type (signature) layouting, Fix layout
...
Some more cases that still produced broken layout on interaction
with do-blocks were fixed.
2023-05-29 20:44:01 +00:00
Lennart Spitzner
8706b55139
Properly handle comments at the end of imports
2023-05-28 13:55:21 +00:00
Lennart Spitzner
a5f2178d87
Fix missing comments in record decl
2023-05-28 13:55:21 +00:00
Lennart Spitzner
d4f49f9ced
Fix one more block-comment restore-position issue
2023-05-28 13:55:21 +00:00
Lennart Spitzner
8f69d5e816
Fix bad indentation problem for HsMultiIf inside parens
2023-05-28 13:55:21 +00:00
Lennart Spitzner
6721a44359
Retain comments after lambdacase and at record fields
2023-05-28 13:55:21 +00:00
Lennart Spitzner
adc74d8bb1
Fix paren-multiline-expression in do block
2023-05-28 13:55:21 +00:00
Lennart Spitzner
b874175986
Fix no-module-header start-of-file whitespace
2023-05-28 13:55:21 +00:00
Lennart Spitzner
3b431cdad2
Fix invalid syntax on nested do-block with comment
2023-05-28 13:55:21 +00:00
Lennart Spitzner
5ee0733f96
Add a few more hardcoded fixities
2023-05-28 13:55:20 +00:00
Lennart Spitzner
a90550f62d
Respect inline configs that happen to appear deep in AST
...
comments between top-level decls should be considered
for inline-config. But despite being placed between
top-level decls, occasionally they get connected
somewhere nested inside the AST of the first decl.
We fix this by extracting such comments in a
pre-processing step. The control flow was significantly
altered to allow for this;
before:
parsing -> extract inline configs
-> compute final config(s)
-> split module into head/decls/comments/whitespace
-> ... bridoc -> transformations -> printing
after:
parsing -> split module into head/decl/comments/whitespace
-> extract inline configs respecting comments that
got extracted from decls in the previous step
-> compute final config(s)
-> ... bridoc -> transformations -> printing
2023-05-28 13:55:20 +00:00
Lennart Spitzner
91a8c23989
Fixup op prec testcase
2023-05-28 13:55:20 +00:00
Lennart Spitzner
a9091daeb9
Improve layout options for newtype-decls
...
Also re-introduce the config flag to enable/disable
single-line newtype rhs layouting.
2023-05-18 15:42:48 +00:00
Lennart Spitzner
9c5a490938
Fix comment duplication on Matches
2023-05-18 15:42:48 +00:00
Lennart Spitzner
e38836fdab
Fix top-level comment position+whitespace bug
2023-05-18 15:42:48 +00:00
Lennart Spitzner
860c8771ae
Fix issue with indentation after block-comments
2023-05-18 15:42:48 +00:00
Lennart Spitzner
47bcdb045b
Amend output of golden-tests to avoid confusion
2023-05-18 15:42:48 +00:00
Lennart Spitzner
6008cb26ac
Support basic form of HsBangTy
2023-05-18 15:42:48 +00:00
Lennart Spitzner
7e56701bc2
Support associated data decls with multiple constructors
2023-05-18 15:42:48 +00:00
Lennart Spitzner
94fcf56b28
Teach obfuscation module new haskell keywords
2023-05-18 15:42:48 +00:00
Lennart Spitzner
b057c49727
Include parse-error in output-not-valid error message
2023-05-18 15:42:48 +00:00
Lennart Spitzner
7bf2879ac0
Deny one layout for OpApp cases unless precedence<=1
...
Previously allowed: `foo = abc + def-as-par`
Still allowed: `foo = abc $ def-as-par`
Still allowed: `foo = abc <&> \x -> def-as-par`
2023-05-08 15:15:14 +00:00
Lennart Spitzner
e7cdff440d
Fix space between paren and multi-line lambda
2023-05-08 15:15:14 +00:00
Lennart Spitzner
91300f5316
Respect empty lines after let keyword
2023-05-08 14:54:34 +00:00
Lennart Spitzner
687b59c62f
Respect newlines before "where"
2023-05-08 14:54:34 +00:00
Lennart Spitzner
2b77142617
Fix layout of type-level list literal
2023-05-03 19:53:19 +00:00
Lennart Spitzner
84e703d7f3
Respect and Fix disable-next-binding/decl
2023-05-02 12:37:02 +00:00
Lennart Spitzner
fe876ea0b0
Hardcode more precedences
2023-05-02 12:37:02 +00:00
Lennart Spitzner
884c7da97c
Allow special layout for HsApp with HsDo/HsSpiceE args
2023-05-02 09:56:39 +00:00