Rob Rix
|
7854e32c51
|
Unique the keys on both sides.
This avoids false negatives in the tests where, if we generate two
children with the same key, we appear to drop one of the keys.
|
2016-05-26 10:16:26 -04:00 |
|
Rob Rix
|
5933a0809d
|
Move branchElementContents into toAlignBranchInputs.
|
2016-05-26 09:37:06 -04:00 |
|
Rob Rix
|
f48e5c37bc
|
Move alignBranchElement into toAlignBranchInputs.
|
2016-05-26 09:36:44 -04:00 |
|
Rob Rix
|
6ef8758d7e
|
Add a test case for symmetrical reformatted nodes and context following them.
|
2016-05-26 09:31:25 -04:00 |
|
Rob Rix
|
3820ab3e66
|
Filter out bogus empty ranges.
|
2016-05-25 17:10:38 -04:00 |
|
Rob Rix
|
0025b044f7
|
Increment the ranges for successive lines.
|
2016-05-25 17:10:30 -04:00 |
|
Rob Rix
|
b0d154271c
|
Take the actual lines on both sides.
We were getting the wrong ranges.
|
2016-05-25 17:10:14 -04:00 |
|
Rob Rix
|
5fad7be0f5
|
🔥 the unused Arbitrary instance over PrettyDiff.
|
2016-05-25 14:31:47 -04:00 |
|
Rob Rix
|
04e36c4dcb
|
🔥 alignmentFromBranchElements.
|
2016-05-25 14:14:38 -04:00 |
|
Rob Rix
|
2ea50d9387
|
Roll toSourcesAndRanges into toAlignedChildren.
|
2016-05-25 14:13:27 -04:00 |
|
Rob Rix
|
b4d0749d52
|
🔥 the top-level bothContents binding.
|
2016-05-25 13:32:33 -04:00 |
|
Rob Rix
|
eb15740170
|
Roll toSources into toSourcesAndRanges.
|
2016-05-25 11:18:49 -04:00 |
|
Rob Rix
|
e5a2c384fc
|
Test that alignBranch covers every line of the input ranges.
|
2016-05-25 11:13:34 -04:00 |
|
Rob Rix
|
6caf9d3930
|
Extract alignment from the property test.
|
2016-05-25 10:59:16 -04:00 |
|
Rob Rix
|
5c1b0809ec
|
Shrink BranchElement by crosswalking.
|
2016-05-25 10:54:41 -04:00 |
|
Rob Rix
|
5237c7ccc5
|
Revert "Add a BranchAlignment type."
This reverts commit c85b9fcca08b147c8f2c7bae573f7b30c08f14f4.
|
2016-05-25 10:43:24 -04:00 |
|
Rob Rix
|
3663cc612b
|
Revert "Add an Arbitrary instance over BranchAlignment."
This reverts commit 17e215b1aec6fdb80212133fe362a9c5120e0b8f.
|
2016-05-25 10:43:20 -04:00 |
|
Rob Rix
|
e524b4e0fe
|
Revert "Add a Show instance over BranchAlignment."
This reverts commit afd605d4e80d759c8d75b3d912e2e5f36bcc217c.
|
2016-05-25 10:43:15 -04:00 |
|
Rob Rix
|
d42c071a08
|
Add a Show instance over BranchAlignment.
|
2016-05-25 10:42:44 -04:00 |
|
Rob Rix
|
366dba33b3
|
Add an Arbitrary instance over BranchAlignment.
|
2016-05-25 10:42:35 -04:00 |
|
Rob Rix
|
03ec660dbc
|
Add a BranchAlignment type.
|
2016-05-25 10:41:17 -04:00 |
|
Rob Rix
|
13aaee7526
|
Correct branch element alignment to use crosswalk .
|
2016-05-25 10:34:22 -04:00 |
|
Rob Rix
|
dbd1030a34
|
Derive the Show instance for BranchElement.
|
2016-05-25 10:26:44 -04:00 |
|
Rob Rix
|
1f0d0eb714
|
Test that alignBranch covers every child in the input.
|
2016-05-25 09:54:42 -04:00 |
|
Rob Rix
|
c1198065e2
|
Correct the assignment of ranges to lines.
|
2016-05-25 09:54:21 -04:00 |
|
Rob Rix
|
6fb9383fb1
|
Rewrite keysOfAlignedChildren in tacit style in hopes of finding an infinite loop.
|
2016-05-24 16:21:12 -04:00 |
|
Rob Rix
|
79ef67e6e3
|
Find the keys of aligned children.
|
2016-05-24 13:36:12 -04:00 |
|
Rob Rix
|
10a689090b
|
Implement a function to find the key in branch elements that have any.
|
2016-05-24 13:36:04 -04:00 |
|
Rob Rix
|
a594f54279
|
Implement construction of arbitrary PrettyDiffs.
|
2016-05-24 13:04:28 -04:00 |
|
Rob Rix
|
e0e7f0fa4a
|
Add a toPrettyDiff function to abstract the construction of pretty diffs away.
|
2016-05-24 13:04:10 -04:00 |
|
Rob Rix
|
24a732322c
|
Forgot to commit the import of Control.Monad.State.
|
2016-05-24 12:00:03 -04:00 |
|
Rob Rix
|
f3f7b5e6b9
|
Aligned children contain ranges.
|
2016-05-21 00:08:01 -04:00 |
|
Rob Rix
|
f720901dbc
|
Compute the aligned children from a list of branch elements.
|
2016-05-20 23:51:24 -04:00 |
|
Rob Rix
|
e4dd1e7cd8
|
Compute the sources and ranges in a single step.
|
2016-05-20 23:49:17 -04:00 |
|
Rob Rix
|
bdb02a4bf4
|
Compute the ranges for a list of elements.
|
2016-05-20 23:46:14 -04:00 |
|
Rob Rix
|
db6f2b6430
|
Arbitrary BranchElements’ contents contain their key, not a fresh key.
|
2016-05-20 23:19:44 -04:00 |
|
Rob Rix
|
96f94c9bdb
|
Shrink Child contents respecting their prefixes/suffixes.
|
2016-05-20 23:13:36 -04:00 |
|
Rob Rix
|
ff3691eac4
|
🔥 showThese.
|
2016-05-20 23:13:17 -04:00 |
|
Rob Rix
|
9acdb24243
|
🔥 toSource.
|
2016-05-20 22:42:46 -04:00 |
|
Rob Rix
|
5d9de67ecc
|
Use the Applicative instance to generate BranchElements.
|
2016-05-20 22:41:48 -04:00 |
|
Rob Rix
|
ea79ce4f04
|
Rewrite BranchElement/Source computations correctly.
|
2016-05-20 22:41:38 -04:00 |
|
Rob Rix
|
61c2bf0ccc
|
Simplify the Show instance for BranchElement.
|
2016-05-20 22:33:06 -04:00 |
|
Rob Rix
|
111b12846a
|
Arbitrary BranchElements have their contents set appropriately up front.
|
2016-05-20 22:32:00 -04:00 |
|
Rob Rix
|
bfcd3193da
|
Add a convenience to extract the contents from a branch element.
|
2016-05-20 22:25:41 -04:00 |
|
Rob Rix
|
26d31fa12a
|
Remove the comments describing the contents of Margin & Child since we no longer guarantee them.
|
2016-05-20 22:19:35 -04:00 |
|
Rob Rix
|
24af4c4af5
|
Add a function to align branch elements into their lines.
|
2016-05-20 22:17:39 -04:00 |
|
Rob Rix
|
30bfae37aa
|
Child, not Child'.
|
2016-05-20 22:13:36 -04:00 |
|
Rob Rix
|
e1110869e3
|
🔥 Child .
|
2016-05-20 22:11:48 -04:00 |
|
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
|
cb2ffd188c
|
Add a test case of ungreedy asymmetrical node alignment.
|
2016-05-19 16:16:35 -04:00 |
|
Rob Rix
|
20627f764f
|
Test alignBranch instead of alignChildrenInRanges.
|
2016-05-19 13:40:10 -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
|
d25f7ddc7f
|
Test that we align deletions on a line before insertions.
|
2016-05-19 12:22:48 -04:00 |
|
Rob Rix
|
1979f4e32f
|
Make it convenient to show the raw structures for strange failure cases.
|
2016-05-19 12:22:33 -04:00 |
|
Rob Rix
|
80f58f01e3
|
Do some gymnastics to allow our DSL to construct terms/diffs uniformly.
|
2016-05-19 12:12:11 -04:00 |
|
Rob Rix
|
198304d45d
|
Use the insert/delete constructors in the test fixtures.
|
2016-05-19 11:10:48 -04:00 |
|
Rob Rix
|
7bc9a358a5
|
Add PatchConstructible instances to Patch/SplitPatch.
|
2016-05-19 11:04:19 -04:00 |
|
Rob Rix
|
04ef584b6c
|
Add a typeclass to make patches/split patches.
|
2016-05-19 11:03:45 -04:00 |
|
Rob Rix
|
3e63b464f7
|
Test that symmetrical nodes are split if forced by earlier symmetrical nodes.
|
2016-05-19 09:01:15 -04:00 |
|
Rob Rix
|
c50493175b
|
Remove the redundant tests of asymmetrical nodes preceding/following symmetrical ones.
|
2016-05-19 00:21:41 -04:00 |
|
Rob Rix
|
24f98f7db9
|
Test that symmetrical nodes force alignment on both sides.
|
2016-05-19 00:19:08 -04:00 |
|
Rob Rix
|
17403fc2b2
|
Fix up the test of symmetrical nodes and following asymmetrical ones.
|
2016-05-19 00:18:49 -04:00 |
|
Rob Rix
|
b86ce458b0
|
Test that symmetrical nodes force alignment of later asymmetrical nodes on the same line.
|
2016-05-19 00:15:03 -04:00 |
|
Rob Rix
|
7d591e737f
|
Test that symmetrical nodes force alignment of earlier asymmetrical nodes on the same line.
|
2016-05-19 00:13:49 -04:00 |
|
Rob Rix
|
5c2d9b6b01
|
Change a test name.
|
2016-05-19 00:13:26 -04:00 |
|
Rob Rix
|
dc8d0d4fdf
|
Add punctuation characters to a test case to clarify the failure.
|
2016-05-18 17:22:16 -04:00 |
|
Rob Rix
|
7cfdeff5e5
|
Intersections with empty children have the same shape as the ranges.
|
2016-05-17 15:04:09 -04:00 |
|
Rob Rix
|
e40434f476
|
Test that we align insertions into empty branches without losing nodes.
|
2016-05-16 12:37:13 -04:00 |
|
Rob Rix
|
6f819341ab
|
Test that we align insertions which span the entirety of the thing.
|
2016-05-16 10:54:56 -04:00 |
|
Rob Rix
|
8f05beb023
|
Spacing for alignment.
|
2016-05-16 10:41:10 -04:00 |
|
Rob Rix
|
2008b63c17
|
Compute the maximum value in each element correctly.
|
2016-05-13 18:44:27 -04:00 |
|
Rob Rix
|
9567c44c57
|
Guarantee non-empty by prepending.
|
2016-05-13 18:38:19 -04:00 |
|