Rob Rix
2eba6e726e
toSource(s)/toChildLists operate over BranchElements.
2016-05-20 22:11:22 -04:00
Rob Rix
ed00a34bee
Shrink BranchElements.
2016-05-20 22:08:22 -04:00
Rob Rix
c7ed296e8b
Don’t re-quote the contents of branch elements.
2016-05-20 22:04:09 -04:00
Rob Rix
f830256a5c
Pretty-print Margin elements.
2016-05-20 22:03:39 -04:00
Rob Rix
f09f9cf3a2
Extract showThese to the top.
2016-05-20 22:03:13 -04:00
Rob Rix
097220a454
Pretty-print Child elements differently.
2016-05-20 22:02:29 -04:00
Rob Rix
919f32a650
Spike out an Arbitrary instance for BranchElement.
2016-05-20 21:59:46 -04:00
Rob Rix
419bcfe776
Add a Show instance over BranchElement.
2016-05-20 21:54:33 -04:00
Rob Rix
3aaa9f79ca
Stub in a type representing the elements of branches.
2016-05-20 21:50:52 -04:00
Rob Rix
6eabdd06eb
Compute a pair of Sources from a list of child lines.
2016-05-20 21:50:41 -04:00
Rob Rix
048c9d34c2
Add a function to compute lists of children.
2016-05-20 21:50:08 -04:00
Rob Rix
2541405fdc
Compute a Source from a list of children.
2016-05-20 21:49:29 -04:00
Rob Rix
aff7fbbc47
Ensure that we do not shrink when both childContents and childMargin are empty.
2016-05-20 16:40:25 -04:00
Rob Rix
0e86c8149a
Ensure that we can shrink when either childContents or childMargin is empty.
2016-05-20 16:39:58 -04:00
Rob Rix
21fac60bf1
Shrink contents and margins string-wise but not character-wise.
...
🎩 @rewinfrey
2016-05-20 16:32:28 -04:00
Rob Rix
bd286bfbce
Implement shrink
over Child
.
2016-05-20 16:29:09 -04:00
Rob Rix
97f6183a55
Destructure the child using RecordWildcards.
2016-05-20 16:13:15 -04:00
Rob Rix
2b65c06ffc
Add a Show instance for Child.
...
🎩 @rewinfrey
2016-05-20 16:07:13 -04:00
Rob Rix
1ae30309b4
Newlines are less common than other padding characters.
2016-05-20 16:06:49 -04:00
Rob Rix
f8e007bb46
Children contain asterisks and newlines.
2016-05-20 15:50:31 -04:00
Rob Rix
b0c0f13b61
Children have a string of contents.
2016-05-20 15:50:15 -04:00
Rob Rix
765ac74532
Generate arbitrary margins of spaces and newlines.
2016-05-20 15:44:47 -04:00
Rob Rix
5efb5d8987
Write the childMargin type as String to silence hlint.
2016-05-20 15:44:24 -04:00
Rob Rix
391b1da75e
Arbitrary child keys are alphanumeric.
2016-05-20 15:41:20 -04:00
Rob Rix
f2835ac7a6
Child keys are strings.
2016-05-20 15:40:40 -04:00
Rob Rix
13a90624de
Stub in a quick Arbitrary instance for Child.
2016-05-20 15:34:20 -04:00
Rob Rix
72455cdecd
Add a datatype to represent children for alignBranch property tests.
2016-05-20 15:34:11 -04:00
Rob Rix
5355143395
Add some pending properties.
2016-05-20 13:05:38 -04:00
Rob Rix
018f289fb5
Abstract PrettyDiff over a type parameter.
2016-05-20 12:39:56 -04:00
Rob Rix
a2952307f6
Produce a single element with the rest of the lines in a split-up child.
2016-05-20 11:09:15 -04:00
Rob Rix
d99e4ab39b
When we only have ranges on one side, default the other to assume intersecting.
2016-05-19 16:51:33 -04:00
Rob Rix
cb2ffd188c
Add a test case of ungreedy asymmetrical node alignment.
2016-05-19 16:16:35 -04:00
Rob Rix
f1d9cc3f2f
Skip past nonintersecting children.
...
This resolves failures in two distinct cases where changing the default
for handling asymmetrical ranges had opposite outcomes.
2016-05-19 16:16:15 -04:00
Rob Rix
2fa8060a1c
Revert "Default the intersection assumption to True."
...
This reverts commit 9bf8bb93f3ddf06027e9aafd7b7062b398c5409f.
2016-05-19 16:13:43 -04:00
Rob Rix
16b1d5b4f3
Handle the empty child case with otherwise
.
2016-05-19 16:12:51 -04:00
Rob Rix
0fd78af15e
🔥 the properties, since we’ve captured them.
2016-05-19 15:12:24 -04:00
Rob Rix
2df52eec1d
Ditto for the json output.
2016-05-19 14:04:16 -04:00
Rob Rix
172a0aaa47
We no longer extend an expression statement over the end of the line, apparently.
2016-05-19 14:00:22 -04:00
Rob Rix
1d2ec4c5f0
The expected alignment of this case has changed.
2016-05-19 13:54:29 -04:00
Rob Rix
c839a434e8
🔥 distribute.
2016-05-19 13:43:02 -04:00
Rob Rix
bf656592c1
🔥 pairRangesWithLine.
2016-05-19 13:42:58 -04:00
Rob Rix
f4923c63b7
🔥 spanAndSplitFirstLines.
2016-05-19 13:42:53 -04:00
Rob Rix
73746013fb
🔥 alignChildrenInRanges.
2016-05-19 13:42:46 -04:00
Rob Rix
20627f764f
Test alignBranch instead of alignChildrenInRanges.
2016-05-19 13:40:10 -04:00
Rob Rix
572082cacd
Diff Keyed nodes using alignBranch.
2016-05-19 13:38:24 -04:00
Rob Rix
527e87fc4b
Merge branch 'master' into cofree-and-bifunctors-sitting-in-a-tree-a-l-i-g-n-edly
2016-05-19 13:36:57 -04:00
Rob Rix
64ac903f3f
Align branches within a copointed context.
2016-05-19 13:26:36 -04:00
Rob Rix
ac17a13167
Test that context-only lines are paired up before the asymmetrical halves of split-up symmetrical children.
2016-05-19 12:52:51 -04:00
Rob Rix
17d2e8fe62
Default the intersection assumption to True.
...
This fixes an issue where we dropped asymmetrical children on the
opposite side from earlier asymmetrical children when splitting up
deletions/insertions.
2016-05-19 12:39:43 -04:00
Rob Rix
d25f7ddc7f
Test that we align deletions on a line before insertions.
2016-05-19 12:22:48 -04:00