1
1
mirror of https://github.com/github/semantic.git synced 2024-12-22 14:21:31 +03:00
Commit Graph

323 Commits

Author SHA1 Message Date
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
Rob Rix
ce9be615a6 Turn the bind around. 2016-04-25 15:04:55 -04:00
Rob Rix
632d2cf86b Simplify padding. 2016-04-25 15:03:49 -04:00
Rob Rix
55af6c2001 Strip newlines inline. 2016-04-25 15:00:46 -04:00
Rob Rix
3a3458684d Derive the Eq instance. 2016-04-25 14:59:20 -04:00
Rob Rix
237558fbed Simplify showLine. 2016-04-25 14:59:00 -04:00
Rob Rix
7628d15a73 Filter newlines out completely. 2016-04-25 14:54:13 -04:00
Rob Rix
ca3ff15a4f Prepend newlines so things line up nicely. 2016-04-25 14:52:24 -04:00
Rob Rix
077dfb8757 Show lines at the minimal width. 2016-04-25 14:51:25 -04:00
Rob Rix
643703821e Use the where clause. 2016-04-25 14:49:47 -04:00
Rob Rix
2bc33b58b8 Concatenate the maybes. 2016-04-25 14:45:07 -04:00
Rob Rix
e9f5c4bc4f Bind the shown lines. 2016-04-25 14:44:26 -04:00
Rob Rix
62f6844038 Map diffs into strings up front. 2016-04-25 14:43:07 -04:00
Rob Rix
f602dc90fe Add a function to convert These -> (,). 2016-04-25 14:14:05 -04:00
Rob Rix
98a7c049b2 Clip when padding. 2016-04-25 14:13:01 -04:00
Rob Rix
bd0d8f0d02 Map the diffs into functions first up. 2016-04-25 14:08:04 -04:00
Rob Rix
dde8612347 Revert "Flip the arguments to showDiff."
This reverts commit 6808da41529f58593553730451185cc90b643ba7.
2016-04-25 14:06:43 -04:00
Rob Rix
a5f45ed699 Flip the arguments to showDiff. 2016-04-25 14:04:57 -04:00
Rob Rix
958dfe914c Pad the first column of These. 2016-04-25 14:02:39 -04:00
Rob Rix
b9b5382b3d Use the pad function for This. 2016-04-25 14:01:45 -04:00
Rob Rix
e214dc3c1d Add a function to pad strings out. 2016-04-25 14:01:39 -04:00
Rob Rix
1fb647ae9d Drop the broken min. 2016-04-25 13:56:57 -04:00
Rob Rix
d9c2bb8e4c Strip newlines in the output diff. 2016-04-25 13:55:39 -04:00
Rob Rix
938b89f8db Add a function to strip newlines from a Functor. 2016-04-25 13:55:33 -04:00
Rob Rix
aa87f65466 Pad out This lines. 2016-04-25 13:47:21 -04:00
Rob Rix
77576905d1 Parameterize showLine by the column width. 2016-04-25 13:38:26 -04:00
Rob Rix
7999f8e540 Wrap the diff in PrettyDiff. 2016-04-25 13:37:19 -04:00
Rob Rix
51191338a6 Add an align binding. 2016-04-25 13:37:07 -04:00
Rob Rix
4d47ebc4b5 Define an Eq instance for PrettyDiff. 2016-04-25 13:00:26 -04:00
Rob Rix
639e1a9443 Add field accessors back in again. 2016-04-25 13:00:18 -04:00
Rob Rix
e481756bd3 Bind the sources in a let. 2016-04-25 12:57:57 -04:00
Rob Rix
3cde6162e7 PrettyDiff takes a pair of Sources. 2016-04-25 12:57:33 -04:00
Rob Rix
a805cad292 Pass the source to showDiff explicitly. 2016-04-25 12:56:03 -04:00
Rob Rix
0ca30921ca Add a Show instance for PrettyDiff. 2016-04-25 12:54:51 -04:00
Rob Rix
0d90744aac PrettyDiff doesn’t declare accessors. 2016-04-25 12:54:40 -04:00
Rob Rix
43359cad9c PrettyDiff carries the Source. 2016-04-25 12:53:15 -04:00
Rob Rix
564dd1d2c7 Stub in a PrettyDiff type. 2016-04-25 12:37:56 -04:00
Rob Rix
f0683932bb 🔥 redundant imports. 2016-04-22 12:56:13 -04:00
Rob Rix
f7fd63528a 🔥 obsolete bindings. 2016-04-22 12:56:09 -04:00
Rob Rix
d2dae5824d Expect children to be in a copointed context. 2016-04-22 12:18:40 -04:00
Rob Rix
7a3aac1af9 Add a failing test that we align context following insertions correctly. 2016-04-15 16:10:09 -04:00
Rob Rix
a61d847705 Replace Data.Bifunctor.These and Data.Align with the these package. 2016-04-14 22:00:00 -04:00
Rob Rix
d99d1d762c 🔥 some redundant imports. 2016-04-14 21:57:52 -04:00
Rob Rix
3662b021df Correct the test of insertion patch alignment. 2016-04-14 20:31:03 -04:00
Rob Rix
7c63e92ea7 Construct SplitPatches. 2016-04-14 20:27:24 -04:00
Rob Rix
e5dd029b10 Test that insertions are aligned. 2016-04-14 19:40:36 -04:00
Rob Rix
75bda340ef Sort the Data.Functor.Identity import. 2016-04-14 19:34:59 -04:00
Rob Rix
1c9e5d9087 🔥 tests of splitDiffByLines. 2016-04-14 18:31:03 -04:00
Rob Rix
2564034b6d 🔥 tests of splitAbstractedTerm. 2016-04-14 18:30:52 -04:00
Rob Rix
e3ace6408c Merge branch 'master' into cofree-and-bifunctors-sitting-in-a-tree-a-l-i-g-n-edly
# Conflicts:
#	test/AlignmentSpec.hs
#	test/PatchOutputSpec.hs
2016-04-14 12:57:45 -04:00
Rob Rix
ad47c77509 Correct some test cases. 2016-04-12 05:00:39 -04:00
Rob Rix
1a22eaebf6 Correct the tests. 2016-04-12 04:54:32 -04:00
Rob Rix
0437045089 Simplify the multiple children in a single line test. 2016-04-05 11:37:40 -04:00
Rob Rix
07cf5dac3c Add a (failing) test that multiple children on the same line get aligned. 2016-04-04 18:26:10 -04:00
Rob Rix
d35de99307 🔥 some redundant parens. 2016-04-04 18:25:44 -04:00
Rob Rix
50d18f4472 🔥 a do. 2016-04-04 18:19:58 -04:00
Rob Rix
63e33f54cc Put the branch/leaf/info DSL at the top level. 2016-04-01 10:15:48 -04:00
Rob Rix
9c706c05e2 🔥 patchWithBoth. 2016-04-01 10:13:37 -04:00
Rob Rix
2540e9d207 🔥 leafWithRangeInSource. 2016-04-01 10:13:33 -04:00
Rob Rix
4f9de16045 Free doesn’t export unfold. 2016-04-01 10:13:22 -04:00
Rob Rix
04fffe584f 🔥 redundant imports. 2016-04-01 10:13:13 -04:00
Rob Rix
19cc23b51a Merge branch 'master' into cofree-and-bifunctors-sitting-in-a-tree-a-l-i-g-n-edly
# Conflicts:
#	src/Diff.hs
2016-03-30 20:20:50 -04:00
Rob Rix
20bb94bf5e Also, tests. 2016-03-30 17:33:07 -04:00
Rob Rix
ea97b04032 Test that groupChildrenByLine produces asymmetrical context. 2016-03-24 13:56:07 -04:00
Rob Rix
04ca818b0b Rename the test. 2016-03-24 13:54:11 -04:00
Rob Rix
931ba9808f Test that groupChildrenByLine produces symmetrical context. 2016-03-24 13:53:58 -04:00
Rob Rix
07bc16bf35 Be more specific with the test names. 2016-03-24 13:44:57 -04:00
Rob Rix
899d53eec2 Test the alignment of identical nodes across multiple lines. 2016-03-24 13:05:52 -04:00
Rob Rix
fbbf80a3fa Test the alignment of identical nodes on a single line. 2016-03-24 13:05:44 -04:00
Rob Rix
2e9eb92609 Rename the tests. 2016-03-22 09:20:44 -04:00
Rob Rix
1a3a32e3e1 Correct the test fixtures. 2016-03-22 00:17:20 -04:00
Rob Rix
2226acf61c Revert "Add a convenience to construct Source Char."
This reverts commit 63e023e439491207aa739bb0e68660770eaa9272.
2016-03-21 19:08:35 -04:00
Rob Rix
7ff808f3dc Add some tests (which won’t typecheck yet). 2016-03-21 19:08:02 -04:00
Rob Rix
62ac37c981 Add a convenience to construct branch diffs. 2016-03-21 18:54:34 -04:00
Rob Rix
361bfc0e81 Add a convenience to construct leaf diffs. 2016-03-21 18:54:27 -04:00
Rob Rix
1f1be15a99 Add a convenience to construct Source Char. 2016-03-21 18:54:18 -04:00
Rob Rix
d3a3b68752 Add a convenience to construct Info. 2016-03-21 18:54:09 -04:00
Rob Rix
01f817a77e Move the other arbitrary instances into ArbitraryTerm. 2016-03-15 11:17:47 -04:00
Rob Rix
f3c6f8b3f6 Compute lines within Adjoined. 2016-03-15 10:58:54 -04:00
Rob Rix
c4146dbefa Correct the tests for the changes to the API. 2016-03-14 22:58:07 -04:00
Rob Rix
5fb11795dc 🔥 isEmptyRow. 2016-03-14 22:53:16 -04:00
Rob Rix
586894c316 splitAbstractedTerm no longer takes an align function. 2016-03-14 22:50:40 -04:00
Rob Rix
c22f86d812 🔥 adjoinRows tests. 2016-03-14 22:47:18 -04:00
Rob Rix
1bb87bf6ee Fix up a bunch of toLists into toStrings. 2016-03-11 18:35:31 -05:00
Rob Rix
379208b3a3 🔥 qualifications of zip & zipWith. 2016-03-11 14:21:42 -05:00
Rob Rix
9c011d7de5 Migrate off Both.zip. 2016-03-11 14:21:07 -05:00
Rob Rix
a22ac1ea31 🔥 the splitPatchByLines test. 2016-03-11 12:10:56 -05:00
Rob Rix
ebd4cc7369 Split the let bindings onto a new line. 2016-03-11 12:10:01 -05:00
Rob Rix
d35738ef73 Extract the patch into a let binding. 2016-03-11 12:09:46 -05:00
Rob Rix
ceb4a0b0ec Extract the ranges into a let binding. 2016-03-11 12:06:47 -05:00
Rob Rix
00f58ece6a Disable the aligning closed lines test. 2016-03-11 00:41:18 -05:00
Rob Rix
c750a98f4b Use alignRows in the tests. 2016-03-10 19:48:28 -05:00
Rob Rix
62cdbacdfe Test that child alignment is preserved. 2016-03-10 17:48:17 -05:00
Rob Rix
736e7b95c7 Write the closed rows as Closed "". 2016-03-10 15:47:10 -05:00
Rob Rix
257c538300 Correct the expectation of the aligning test. 2016-03-10 15:46:31 -05:00
Rob Rix
68c34c11b4 Align the rows. 2016-03-10 15:45:55 -05:00
Rob Rix
9c0b512092 Make that Row Char. 2016-03-10 15:45:23 -05:00