1
1
mirror of https://github.com/github/semantic.git synced 2024-12-21 05:41:54 +03:00
Commit Graph

329 Commits

Author SHA1 Message Date
Rob Rix
8313074e50 Test that we preserve child lines in the output. 2016-05-26 11:39:24 -04:00
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