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 |
|
Rob Rix
|
3d8df9bc4f
|
Test against Row String.
|
2016-03-10 15:44:36 -05:00 |
|
Rob Rix
|
bfb02f420e
|
Fix the open row test.
|
2016-03-10 15:44:07 -05:00 |
|
Rob Rix
|
1812bd6415
|
Construct arbitrary closed lines.
|
2016-03-10 15:38:19 -05:00 |
|
Rob Rix
|
5e950062e4
|
Correct the test of line count preservation.
|
2016-03-10 15:25:00 -05:00 |
|