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 |
|
Rob Rix
|
c02e6c80a5
|
Pretty all the diffs.
|
2016-05-13 18:27:38 -04:00 |
|
Rob Rix
|
a5e11db66d
|
Pull align out to the top level.
|
2016-05-13 18:25:42 -04:00 |
|
Rob Rix
|
bdd03bb122
|
For now, children should be aligned at a higher priority than their parents.
This came out of https://github.com/github/semantic-diff/pull/558.
|
2016-05-13 10:51:52 -04:00 |
|
joshvera
|
170110ee8e
|
Fix up tests
|
2016-05-04 15:15:25 -04:00 |
|
Rob Rix
|
e70a50720c
|
alignChildrenInRanges always exhausts its inputs, so call it instead.
|
2016-04-27 17:44:15 -04:00 |
|
Rob Rix
|
9c008f1116
|
Add a (failing) test that numberedRows produces the correct counts.
|
2016-04-26 15:44:11 -04:00 |
|
Rob Rix
|
64dd8d93da
|
Add a function to get the counts of numbered rows.
|
2016-04-26 14:54:24 -04:00 |
|
Rob Rix
|
3ad8fb3b8a
|
Sort the imports.
|
2016-04-26 14:53:50 -04:00 |
|
Rob Rix
|
3366b94b5a
|
Simplify showLine a little further.
|
2016-04-25 15:08:20 -04:00 |
|