1
1
mirror of https://github.com/google/ormolu.git synced 2024-12-11 08:44:45 +03:00
Commit Graph

15 Commits

Author SHA1 Message Date
mrkkrp
6bc7333a6d Fix rendering of certain record patterns 2019-06-05 21:17:22 +02:00
mrkkrp
1b287b3b0d Change formatting of operators and infix constructors
This formatting scheme is more appropriate if you think of chaining multiple
infix expressions and combining it with do-blocks. The operator should hang
on previous line instead going first on the next line, e.g.:

foo +
  bar

instead of

foo
  + bar
2019-06-05 20:36:04 +02:00
mrkkrp
777524b6de Various adjustments
The main point of this commit is perhaps that certain constructions are rare
and unnatural in multi-line form, so we could print them always in
single-line form however putting parentheses still in multi-line fashion so
the properly of idempotency is satisfied.
2019-06-04 22:45:16 +02:00
yumiova
45e25a1146 Implement rendering of most types of expressions
This pull request implements most of currently missing types of expressions,
with the exception of:

* Do notation
* List comprehensions (list comprehensions are considered a kind of do
  notation in GHC)
* Arrow notation
* Template Haskell

Most expressions are pretty printed in an uncontroversial manner, preferably
similar to existing syntax.
2019-06-04 22:45:16 +02:00
mrkkrp
9a0276b36d Implement the rest of binding types
This includes pattern binds, pattern synonyms, and a refactoring around
printing ‘RdrName’s.
2019-06-04 00:49:33 +02:00
mrkkrp
34b9b71601 Build the project with Nix and switct to GHC 8.6.4
It was decided that we're going to make the project compatible with just one
GHC version at a time. Right now this version is going to be 8.6.4.

A small refactoring included, plus support for the “deriving via” feature.
2019-05-31 14:43:15 +02:00
Utku Demir
06e4f1d5ad Implement TypeApplications and StaticPointers support 2019-05-28 12:18:32 +02:00
mrkkrp
b129979516 Fix guards 2019-05-23 15:30:55 +02:00
mrkkrp
61f49600f8 Adjust if formatting
This includes a refactoring which changes the default strategy for
indentation level bumping. I think it's an improvement overall.
2019-05-23 15:30:55 +02:00
mrkkrp
09afebbd9c Implement rendering of simplest value-level constructs 2019-05-18 18:47:53 +02:00
mrkkrp
3553fc35d0 Implement signature declarations
This implements not everything, but the most common case: simple top-level
declarations for functions.
2019-05-16 19:03:14 +02:00
mrkkrp
b9c8b64947 Implement more precise comment placement without ‘ghc-exactprint’
‘ghc-exactprint’ (or perhaps lexer of GHC itself) does a fairly poor job at
associating comments with elements of AST. In many cases the result is not
what you'd expect. We ran into insuperable problems with that to the effect
that correct comment placement were impossible.

The new approach is to exploit the raw position information provided by the
GHC lexer, that is, spans attached to AST elements and comments. This
allowed us to place comments in output in a very precise and satisfactory
fashion.
2019-05-08 22:03:21 +02:00
mrkkrp
00b08eeaff Implement rendering of data type declarations 2019-05-08 22:03:21 +02:00
mrkkrp
e01287aa24 Implement rendering of type synonyms 2019-04-09 22:45:23 +02:00
mrkkrp
576f943e7f Implement rendering of types and type families declarations 2019-04-07 19:33:28 +02:00