Support IndentPolicyLeft #66

Merged
eborden merged 23 commits from indentpolicyleft into dev 2017-12-01 00:30:28 +01:00

23 Commits (master)

Author SHA1 Message Date
Lennart Spitzner 127299b442 Merge branch 'dev' into indentpolicyleft 2017-11-30 23:47:18 +01:00
Lennart Spitzner 882a3b1a7a Allow single-line after let with IndentPolicyLeft 2017-11-30 23:20:35 +01:00
Lennart Spitzner d9155e240d RecursiveDo: Add second layout, Respect IndentPolicyLeft 2017-11-27 23:13:13 +01:00
Lennart Spitzner 466ff237ff Add some comments/examples in layoutStmt 2017-11-27 23:05:47 +01:00
Lennart Spitzner 9e8571b848 Remove an unnecessary node in BriDoc construction; Add TODO 2017-11-27 23:01:32 +01:00
Evan Rutledge Borden f6859d184f Fix tests after rebase. 2017-11-27 13:05:04 -05:00
Evan Rutledge Borden e9a2de7a85 Filter binders with docSetBaseAndIndent. 2017-11-27 18:12:19 +01:00
Evan Rutledge Borden de0851f975 Use docAltFilter for consistency. 2017-11-27 18:12:19 +01:00
Evan Rutledge Borden 35f33c131c Remove duplication in 'let' expression layout. 2017-11-27 18:12:19 +01:00
Evan Rutledge Borden ba3d9ad739 Add tests for record construction. 2017-11-27 18:12:19 +01:00
Evan Rutledge Borden d7ac478fc6 Update type operator pending tests to remove context. 2017-11-27 18:12:19 +01:00
Evan Rutledge Borden 44e95940c0 Change record update syntax for left indent policy 2017-11-27 18:12:19 +01:00
Evan Rutledge Borden a6bea7542b Update pending long operator use for left indent. 2017-11-27 18:12:19 +01:00
Evan Rutledge Borden d1e1984206 Update guard formatting for IndentPolicyLeft 2017-11-27 18:12:19 +01:00
Evan Rutledge Borden f3c37a6abf Update pending long argument test to context free. 2017-11-27 18:12:19 +01:00
Evan Rutledge Borden cd9f7de566 Update pending type operator test for context free. 2017-11-27 18:12:19 +01:00
Evan Rutledge Borden a13a137f68 Add left indent support for statements
This aligns left indent style `let` statements with their expression
form.
2017-11-27 18:12:19 +01:00
Evan Rutledge Borden de5f0401f3 Add consistency between contsrained and unconstrained forall format
Constrained forall formats aligned the `.` to the left. Constrained
formats aligned the `.` to the right. This change adds consistency
between both formats.
2017-11-27 18:12:19 +01:00
Evan Rutledge Borden 3bbf81baab Add literate tests for context free formatting
Left indent combined with no columnized alignment represents a context
free formatting style for brittany. These tests allow this format to be
tested until inline formatting tools are available to make these files
less redundant.
2017-11-27 18:12:19 +01:00
Evan Rutledge Borden ce41178df5 Remove context sensitive let indentation when IndentPolicyLeft
Let expressions with multiple bindings automattically indent and pull
left

```
let
  a = b
  c = d
in foo bar baz
```

```
let
  a = b
  c = d
in
  foo bar baz
```

```
let
  a = b
  c = d
in foo
  bar
  baz
```

```
let
  a = b
  c = d
in
  foo
    bar
    baz
```
2017-11-27 18:12:19 +01:00
Evan Rutledge Borden bdf8769913 Remove 3 space special case from HsIf when IndentPolicyLeft
```
if foo
   bar
then
  baz
```

becomes

```
if foo
  bar
then
  baz
```
2017-11-27 18:12:19 +01:00
Lennart Spitzner 88cbaf813a Implement `IndentPolicyLeft` for one HsApp case 2017-11-27 18:12:19 +01:00
Lennart Spitzner 4568bd3553 Prepare implementation for `IndentPolicyLeft` 2017-11-27 18:12:19 +01:00