Commit Graph

309 Commits (aeaa043e99d4e4469dac782643695c73c3e99d38)

Author SHA1 Message Date
Evan Rutledge Borden aeaa043e99 Support building DataDecl with 8.0.2 2019-12-09 11:17:31 -07:00
Evan Rutledge Borden 9971e3905d Support building DataDecl with 8.2.2 2019-12-09 11:17:31 -07:00
Lennart Spitzner 2f6967b7b8 Support comments in record data decls 2019-12-09 11:17:31 -07:00
Lennart Spitzner d21ecf89e6 Fix a comment bug in tuple-type layouting 2019-12-09 11:17:31 -07:00
Lennart Spitzner 208a1ceadb Start making datadecls work with ghc-8.4 2019-12-09 11:17:31 -07:00
Evan Rutledge Borden 57ba88a73c Work-in-progress add record declaration layout
Simple records are supports. The tests cover:

- single records
- multi-field types
- columnized alignment
- basic deriving
- deriving strategies
- existential quanitification

A few items block merger

- retaining comments

A few items can be deferred:

- normal types
- sum types
2019-12-09 11:17:31 -07:00
Lennart Spitzner 4f827491da Work-in-progress commit (deriving clause..) 2019-12-09 11:17:31 -07:00
Lennart Spitzner 172866755c Start impl. layouting for datatypes (#12)
Only newtypes work for now; the "interesting" data records
are not touched yet.

Comment insertion not really considered yet; probably needs work.
2019-12-09 11:17:31 -07:00
Lennart Spitzner e24271318d Improve record-expression layouting
- Finish consolidation, clearing a TODO
- Fix two comment placement issues around record wildcards
- Fix regression in brittany-0.12 about layouting large
  (multiline) record field updates
2019-12-05 14:30:50 +01:00
Lennart Spitzner f87c0c64b8 Implement experimental semicolon-into-newlines feature 2019-12-04 13:55:41 +01:00
Lennart Spitzner 77d6d5b553 Fix roundtripping of (~) constraint/type 2019-11-27 22:21:16 +01:00
Lennart Spitzner 974826f98f Fix whitespace regression on forall+constraint type sig 2019-11-08 12:11:35 +01:00
Lennart Spitzner 89b7655bac Fix support for ghc-8.8 2019-09-29 21:45:46 +02:00
Lennart Spitzner 0795a39806 Fix infix matches with more than 2 args, fixes #219 2019-09-19 00:48:59 +02:00
Lennart Spitzner 6879436e67 Fix lambdas with lazy/bang pattern as first argument 2019-09-03 01:10:38 +02:00
Lennart Spitzner 702b993dab Fix prefix operator pattern-match invalid result 2019-09-03 00:23:58 +02:00
Lennart Spitzner 8861f16624 Fix comment handling with let-in 2019-09-02 17:04:44 +02:00
Lennart Spitzner 91d6e18aba Adapt to ghc-8.8 (deps are not ready though) 2019-09-02 17:04:44 +02:00
Lennart Spitzner f289389879 Fix comment wandering left inside instance decls 2019-08-28 14:48:11 +02:00
Lennart Spitzner 6c69388d73
Make errors more descriptive
This is defensive against GHC API guarantees.
2019-07-19 00:12:04 +02:00
pepe iborra a79b5e1a4b Add support for Implicit Params
I don't know what I'm doing, but it type checks

Closes #246
2019-07-14 23:31:11 +01:00
Evan Borden 988d5b4353
Add support for OverloadedLabels
`OverloadedLabels` is a simple enough extension to parse and format. It
is becoming more common with use of `generic-lens`. Since it can be
treated as a `HsVar` its implementation only requires using `docLit`,
along with some marshalling for dealing with `FastString`.
2019-06-23 19:31:05 -05:00
Lennart Spitzner 3288ef3bd4 For funs with multiple matches, use the match id as id (fixes #234) 2019-06-16 22:51:18 +02:00
Lennart Spitzner 42f566b94a Support QuasiQuotation-splices 2019-06-12 09:17:21 +02:00
Lennart Spitzner 517eda8526 Merge pull request #216 from matt-noonan/master 2019-06-05 22:41:22 +02:00
Lennart Spitzner 4f2673a2eb
Merge pull request #215 from matt-noonan/multiline-app-with-comments
Disable single-line HsApp with argument comments.
2019-06-05 21:06:02 +02:00
Lennart Spitzner f9d70cf546 Refactor CPP slightly, Add test-cases 2019-06-05 21:05:27 +02:00
Lennart Spitzner 059bb9402e Merge pull request #198 from ruhatch/type-synonyms 2019-06-05 15:56:50 +02:00
Lennart Spitzner ca3c8b6f9e Add one source doc 2019-06-05 15:56:32 +02:00
Lennart Spitzner bd8b743e36 Document terminology "regular comments" 2019-06-05 15:42:47 +02:00
Matt Noonan 8551600377 Explicitly handle empty HsCase and HsLamCase. 2019-02-04 22:56:46 -05:00
Matt Noonan 6aa537089d Disable single-line HsApp with argument comments. 2019-02-04 15:10:55 -05:00
Lennart Spitzner 621e00bf3f Fix indentation (comments) after "if" (Fixes #167) 2018-11-14 14:53:08 +01:00
Rupert Horlick 01e31b4256
Add type fam instance formatting 2018-11-13 17:07:27 -04:00
Lennart Spitzner e7d8f59e93 travis-ci: Add ghc-8.6, Clean up a bit 2018-11-04 22:14:02 +01:00
Lennart Spitzner 34735e27ef Add compat with GHC-8.6 API 2018-11-04 22:14:00 +01:00
Lennart Spitzner 522e40c8ed Retain empty lines before "where"
only applies to local "where"s (not module..where)
2018-11-04 18:13:37 +01:00
Lennart Spitzner ad5868eb76 Fix spacing bugs, Clean up implemenation
- Normalize spaces on type alias lhs. unnecessary spaces were
  retained previously, e.g.
  "type   (   (   a  :%:   b   ) c   ) = (a , c)"
  had non-optimal output
- Clean up separator usage
- Remove backend hacks (to some degree)
- Minor reformatting and premature optimization
2018-10-27 16:15:28 +02:00
Rupert Horlick e7d8b5f1ab
Fix type synonym comments 2018-10-19 15:55:29 -04:00
Rupert Horlick b249c10054
Deal with parens inside comments on 8.4.3 2018-10-17 17:01:31 -04:00
Rupert Horlick e1b43531a8
Add type synonym formatting 2018-10-16 19:28:30 -04:00
Lennart Spitzner 38216cdc02 Add longer doc/Refactor stripWhitespace' 2018-10-11 20:14:29 +02:00
Rupert Horlick 66fd44058d
Add instance formatting for simple case 2018-10-10 14:32:58 -04:00
Lennart Spitzner 6dc5561d08
Merge pull request #186 from sergv/unboxed-tuples
Unboxed tuples
2018-09-30 21:19:15 +02:00
Lennart Spitzner 71efa54954 Move tests, minor Refactoring, Add comments 2018-09-23 23:32:05 +02:00
Lennart Spitzner 460bd4dd2b
Merge pull request #185 from 5outh/benjamin/file-name-errors
Append input path name to UnknownNode errors
2018-09-23 22:29:42 +02:00
Sergey Vinokurov 9755db1d05
Unify "(#", "#)" under single name, docParenHashL and docParenHashR 2018-09-18 09:14:20 +01:00
Sergey Vinokurov 6898d3ef44
Lay out unboxed tuples in types 2018-09-18 09:07:15 +01:00
Sergey Vinokurov 281d7a2f81
Lay out unboxed tuples with spaces
This avoids clashes with names like foo#
2018-09-18 09:07:13 +01:00
Lennart Spitzner 37e4225c49 Include exact location when printing ErrorUnknownNode 2018-09-18 00:23:23 +02:00