1
1
mirror of https://github.com/github/semantic.git synced 2024-12-30 18:36:27 +03:00
Commit Graph

685 Commits

Author SHA1 Message Date
Rob Rix
fe3c43d3d9 Only take the first line from each child. 2016-03-29 15:36:49 -04:00
Rob Rix
73a2eac0bb intersects returns something in the shape of the ranges. 2016-03-29 15:30:53 -04:00
Rob Rix
35d60f8517 Rename heads/tails to headRanges/tailRanges. 2016-03-29 13:53:46 -04:00
Rob Rix
55742ac947 🔥 the inner go function. 2016-03-29 10:02:06 -04:00
Rob Rix
9417f9a5cf Spacing. 2016-03-29 09:58:31 -04:00
Rob Rix
6f4f9391de 🔥 bimapJoin. 2016-03-29 09:57:41 -04:00
Rob Rix
e356b1f29b groupChildrenByLine’s go function takes its ranges in Join These Range. 2016-03-29 09:42:19 -04:00
Rob Rix
48be9e9d81 There is only one cata. 2016-03-29 09:22:54 -04:00
Rob Rix
8db6772d07 Destructure lists embedded in Join These. 2016-03-28 19:17:38 -04:00
Rob Rix
d33a779768 spanMergeable takes its ranges in Join These. 2016-03-28 18:48:55 -04:00
Rob Rix
b5d1658e60 intersects takes its ranges in Join These. 2016-03-28 18:46:34 -04:00
Rob Rix
c5257ab009 Add a partial Applicative function for Join These. 2016-03-28 18:46:22 -04:00
Rob Rix
ffca96416f Extract and annotate the inner functions. 2016-03-28 18:27:01 -04:00
Rob Rix
e334308205 Eliminate repetition when binding this/that. 2016-03-28 18:09:59 -04:00
Rob Rix
178dc833b2 Rename left/right to this/that for clarity. 2016-03-28 18:08:54 -04:00
Rob Rix
17abfbb813 Generalize split for clarity that it cannot depend on diff details. 2016-03-28 18:08:46 -04:00
Rob Rix
133c69ec92 Span over the mergeable children. 2016-03-28 17:57:38 -04:00
Rob Rix
b4c75c7f55 Add a function to partition & divide children intersecting with a pair of lines. 2016-03-28 17:55:01 -04:00
Rob Rix
6f170a134d Add a function to split These into This and That. 2016-03-28 17:54:44 -04:00
Rob Rix
4fa1e1c2d3 Pull the or test out of intersects. 2016-03-28 17:53:39 -04:00
Rob Rix
82c2d29d5e Don’t join the child lines. 2016-03-28 16:40:21 -04:00
Rob Rix
71fd74527d Write intersects in non-tacit style. 2016-03-28 16:19:08 -04:00
Rob Rix
ed97e2fa36 Extract the intersection predicate into the where clause. 2016-03-28 16:10:38 -04:00
Rob Rix
07e3d89e2f Match if there are no intersecting lines. 2016-03-28 16:08:33 -04:00
Rob Rix
665afe2a29 Find intersecting child lines on either side. 2016-03-28 16:03:56 -04:00
Rob Rix
3c27e69000 🔥 the bogus context gathering guards. 2016-03-28 16:03:43 -04:00
Rob Rix
deff4e0c28 🔥 the asymmetric children-gathering. 2016-03-28 16:03:29 -04:00
Rob Rix
e81be3d4ba We meant to test whether these were _not_ empty. 2016-03-28 12:50:38 -04:00
Rob Rix
56c002fdf4 Inline the definition of intersecting. 2016-03-28 12:48:25 -04:00
Rob Rix
aa69c00245 concatMap. 2016-03-28 04:39:32 -04:00
Rob Rix
36ea4abdc8 🔥 some $s. 2016-03-28 04:39:26 -04:00
Rob Rix
f949aae3df Avoid some $s. 2016-03-28 04:39:15 -04:00
Rob Rix
4649aa290a Use null to test for emptiness. 2016-03-28 04:39:08 -04:00
Rob Rix
26199e2b22 Allow coincident endings in asymmetric alignments too. 2016-03-25 12:07:06 -04:00
Rob Rix
122ff8c182 Child ranges can end coincident with the line ranges and still intersect. 2016-03-25 11:52:30 -04:00
Rob Rix
acc7cd3ce8 Align trailing context asymmetrically. 2016-03-25 00:26:33 -04:00
Rob Rix
b04c844d17 Don’t short-circuit when there are still children to align. 2016-03-25 00:22:43 -04:00
Rob Rix
fd61294642 Advance asymmetrically. 2016-03-25 00:19:41 -04:00
Rob Rix
14a109b02e Require child lines to be matched. 2016-03-25 00:19:31 -04:00
Rob Rix
c5cb7da9b0 🔥 the intersects function. 2016-03-24 20:24:15 -04:00
Rob Rix
6e2de43c20 Bind lines/rest with pattern guards. 2016-03-24 15:30:04 -04:00
Rob Rix
5d34fb495d Take all intersecting child lines in a single pass. 2016-03-24 15:28:13 -04:00
Rob Rix
a03c9a90e8 Compute the child lines intersecting with the current lines. 2016-03-24 14:46:22 -04:00
Rob Rix
9e3db2853c Join the child lines. 2016-03-24 14:39:23 -04:00
Rob Rix
da3e338d84 Revert "Add runJoinWith to extract-and-apply Join."
This reverts commit c4027f8162ae6df17c2c91836dd518c6ab229e30.
2016-03-24 14:26:28 -04:00
Rob Rix
05bdd19053 Revert "Define modifyJoin in terms of runJoinWith."
This reverts commit 17fadce8973b46f1bf66d85c2acb8c0eecf5a334.
2016-03-24 14:26:25 -04:00
Rob Rix
3057ce5190 Just use runJoin when computing intersections. 2016-03-24 14:26:15 -04:00
Rob Rix
9047282ff8 Define modifyJoin in terms of runJoinWith. 2016-03-24 14:24:11 -04:00
Rob Rix
606b5b48c8 Add runJoinWith to extract-and-apply Join. 2016-03-24 14:24:02 -04:00
Rob Rix
f2bd582dfb Use bimap to simplify the intersection test. 2016-03-24 14:22:21 -04:00
Rob Rix
cdaae6866f Use bimapJoin to simplify the both-intersecting case. 2016-03-24 14:22:13 -04:00
Rob Rix
0429e14f36 Add bimapJoin to simplify modifying Join by a bimap. 2016-03-24 14:20:28 -04:00
Rob Rix
b2fce1abbd Express the if statement as a case expression. 2016-03-24 14:19:43 -04:00
Rob Rix
b7b823eb0c modifyJoin is parametric in the type of the bifunctor. 2016-03-24 14:18:53 -04:00
Rob Rix
cde7753e5b Less duplicative Indexed mapping. 2016-03-24 14:09:44 -04:00
Rob Rix
2f5127b6ca Less duplicative Leaf mapping. 2016-03-24 14:08:28 -04:00
Rob Rix
0ee12a96b4 Use modifyJoin to map Indexed lines. 2016-03-24 14:05:05 -04:00
Rob Rix
6d4e3761c6 Use modifyJoin to map leaf lines. 2016-03-24 14:04:43 -04:00
Rob Rix
4c132d0c2d Use modifyJoin to compute range/child intersections. 2016-03-24 14:02:40 -04:00
Rob Rix
71e53fd4ff Use modifyJoin to bimap inside a Join. 2016-03-24 14:01:30 -04:00
Rob Rix
d118070186 Add a convenience to modify the contents of a Join. 2016-03-24 13:59:49 -04:00
Rob Rix
6b18548eb0 Export groupChildrenByLine for the tests. 2016-03-24 13:53:49 -04:00
Rob Rix
36f32e0b75 Revert "Get the first ranges for a child."
This reverts commit 24c88022fbc6ad04912006fa9f8245bed742a342.
2016-03-24 12:52:47 -04:00
Rob Rix
1e09119163 Include child lines that exist on both sides. 2016-03-24 12:52:17 -04:00
Rob Rix
385d7570c8 Revert "Don’t iterate each line of each child."
This reverts commit 7149f1a4187ee0e855ed3538ec7fe26a0bac2eb5.
2016-03-24 11:52:14 -04:00
Rob Rix
b05b1694a7 Get the first ranges for a child. 2016-03-24 11:45:52 -04:00
Rob Rix
ccceb8d771 Re-add getRange. 2016-03-24 11:45:45 -04:00
Rob Rix
6a0302acbf Replace rangeLists with a use of fromThese. 2016-03-24 11:34:11 -04:00
Rob Rix
4d99c94bc2 Move the definition onto a new line. 2016-03-24 11:33:11 -04:00
Rob Rix
0a1b3508ee Don’t iterate each line of each child. 2016-03-24 11:32:41 -04:00
Rob Rix
6087ce0560 Place the comma at the start. 2016-03-24 11:32:20 -04:00
Rob Rix
eaff627676 Move rangeLists up. 2016-03-24 11:32:09 -04:00
Rob Rix
99d73906bc Stub in grouping children by line with a recursive function. 2016-03-24 11:05:57 -04:00
Rob Rix
aabb2bbbd1 Dedupe groupChildrenByLine. 2016-03-22 09:27:45 -04:00
Rob Rix
ca10210caa 🔥 the groupChildren binding. 2016-03-22 09:25:52 -04:00
Rob Rix
cff9130426 bimap so we get the correct categories. 2016-03-22 09:17:59 -04:00
Rob Rix
8b00b66b3f Align leaves. 2016-03-22 08:35:38 -04:00
Rob Rix
25e3a13309 Align diffs into lists of Join These. 2016-03-22 08:20:56 -04:00
Rob Rix
f03cdea1f7 Align Indexed branch nodes. 2016-03-21 18:27:46 -04:00
Rob Rix
0e83f33c6b Pair ranges and children. 2016-03-21 16:08:56 -04:00
Rob Rix
3e73aefb01 Don’t bother wrapping in Join.
We need a bifunctor here.
2016-03-21 16:04:21 -04:00
Rob Rix
d1d9fa6970 Add a function to group children by line. 2016-03-21 16:03:10 -04:00
Rob Rix
8a019572dc Embed in Join These outside of the alignSyntax call. 2016-03-21 14:47:26 -04:00
Rob Rix
2f37ba14bc Aligned leaf diffs have per-line ranges. 2016-03-21 13:38:36 -04:00
Rob Rix
d3e8b2ba80 Stub in a function to align diffs. 2016-03-21 13:26:38 -04:00
Rob Rix
89537b4f81 Aligned diffs are split diffs. 2016-03-21 13:10:28 -04:00
Rob Rix
a3e253804d 🔥 theseBoth. 2016-03-21 13:06:00 -04:00
Rob Rix
6422cb38a4 Define AlignedDiff as Joining These two terms. 2016-03-21 12:53:41 -04:00
Rob Rix
c16d725773 Remove a redundant import. 2016-03-21 09:30:54 -04:00
Rob Rix
dc0b5f0355 Revert "Stub in a Fix type for the sake of experimentation."
This reverts commit 91e8730e7e331abf10406c3d866796bb7f8b6d4f.
2016-03-18 15:16:22 -04:00
Rob Rix
9f1b7fc80f Truncate branches for the moment. 2016-03-18 15:15:05 -04:00
Rob Rix
ee81295592 Don’t bind leaf values. 2016-03-18 15:01:11 -04:00
Rob Rix
35215da076 Construct Aligned in alignSyntax. 2016-03-18 15:00:28 -04:00
Rob Rix
63f6389950 Define alignSyntax by case analysis. 2016-03-18 14:58:49 -04:00
Rob Rix
a11bc809df Remove the constructor parameter from alignTermBy and rename it. 2016-03-18 14:58:01 -04:00
Rob Rix
30e1da5a12 Use alignSyntax to construct Aligned functors. 2016-03-18 14:56:48 -04:00
Rob Rix
21356e0144 Add alignSyntax to split a leaf by its lines.
Doesn’t yet operate on branches. Invalidates some other assumptions.
2016-03-18 14:56:32 -04:00
Rob Rix
d318b6565c Get first and second from Data.Bifunctor instead of Control.Arrow. 2016-03-18 14:53:52 -04:00
Rob Rix
cceeffe360 The annotations are in Join. 2016-03-18 14:30:22 -04:00
Rob Rix
bad7878953 Pass the sources to alignTermBy. 2016-03-18 14:18:19 -04:00
Rob Rix
2900eb1f71 alignPatch takes the sources. 2016-03-18 14:15:49 -04:00
Rob Rix
8c791fb638 Annotate aligned diffs with These Info Info for marginal reductions in dubiousness. 2016-03-18 14:03:13 -04:00
Rob Rix
0e36a8af38 Rename the parameter to note its plurality. 2016-03-18 14:00:19 -04:00
Rob Rix
2a5f465a66 Slightly less dubiously, Aligned diffs carry Both Info. 2016-03-18 13:58:04 -04:00
Rob Rix
b9fc6d86e2 Aligned diffs carry Info.
This is extremely dubious, but it’s a start.
2016-03-18 13:55:41 -04:00
Rob Rix
77fd84f831 Run alignPatch in Cofree instead of Fix. 2016-03-18 13:46:56 -04:00
Rob Rix
82e29e2df7 Define anamorphisms over Cofree. 2016-03-18 12:50:16 -04:00
Rob Rix
bf87e931b7 Move the annotated hylo from Interpreter into Term. 2016-03-18 12:43:29 -04:00
Rob Rix
495204ce90 Extract a function to align terms. 2016-03-18 12:08:26 -04:00
Rob Rix
e61d8a27ff Stub in a type synonym for aligned diffs. 2016-03-18 12:02:07 -04:00
Rob Rix
00c3a2ef9f Spike out a function aligning Terms in Patches. 2016-03-18 12:01:59 -04:00
Rob Rix
23ba7c0ae6 hylo over Fix. 2016-03-18 12:00:00 -04:00
Rob Rix
ea6fd75131 cata over Fix. 2016-03-18 11:59:54 -04:00
Rob Rix
793025e65f ana over Fix. 2016-03-18 11:59:48 -04:00
Rob Rix
235e2207e8 Stub in a Fix type for the sake of experimentation. 2016-03-18 11:59:37 -04:00
Rob Rix
daba89d6b0 Be precise as to which cata we mean. 2016-03-18 11:59:19 -04:00
Rob Rix
f3c6f8b3f6 Compute lines within Adjoined. 2016-03-15 10:58:54 -04:00
Rob Rix
a46915b58c Inline rangeUntilNext. 2016-03-15 10:36:18 -04:00
Rob Rix
86b3d700a4 Rename placeChildAndRangeInContainer to match makeContextLines. 2016-03-15 09:23:14 -04:00
Rob Rix
9c69c1b6a6 🔥 unionLineRangesFrom. 2016-03-15 09:22:39 -04:00
Rob Rix
5677e6abf9 Reindent some stuff. 2016-03-15 08:56:18 -04:00
Rob Rix
745765417e Use makeContextLines to construct the leading context. 2016-03-15 08:55:04 -04:00
Rob Rix
c3fa0eb986 Extract and rename pairWithNothing. 2016-03-15 08:54:35 -04:00
Rob Rix
cfa9ae8987 🔥 redundant imports. 2016-03-14 22:49:47 -04:00
Rob Rix
aaa2fe9f36 Revert "What if we aligned in These?"
This reverts commit a43335ef084db66616188c0b166b4ea563d2c0e2.
2016-03-14 20:43:45 -04:00
Rob Rix
1e48770ce1 What if we aligned in These?
It wouldn’t work, that’s what!
2016-03-14 20:43:35 -04:00
Rob Rix
34a76bfe93 🔥 alignRows again. 2016-03-14 19:45:08 -04:00
Rob Rix
aa36f83da3 Diff over TotalCrosswalk functors. 2016-03-14 19:45:02 -04:00
Rob Rix
93414f43ad Diff entirely within Both. 2016-03-14 19:17:44 -04:00
Rob Rix
83ea2f1254 Restore the documentation for alignRows. 2016-03-14 19:16:48 -04:00
Rob Rix
79ff5f9395 Re-add alignRows. 2016-03-14 19:15:40 -04:00
Rob Rix
ec4b30eee7 Rename the range to next indices function. 2016-03-14 15:56:09 -04:00
Rob Rix
5eded53479 Patch returns its values in These. 2016-03-14 15:40:35 -04:00
Rob Rix
f079f41933 fmap inline. 2016-03-14 14:57:39 -04:00
Rob Rix
7e631f06d6 Fix a misaligned guard. 2016-03-14 14:56:56 -04:00
Rob Rix
3742f22eb6 mappend directly instead of building up a list. 2016-03-14 14:56:32 -04:00
Rob Rix
80c24de3ba 🔥 AlignFunction. 2016-03-14 14:54:09 -04:00
Rob Rix
f2a6895c6d Constrain childLines to Crosswalk functors. 2016-03-14 14:53:25 -04:00
Rob Rix
b4415d7b93 Constrain adjoinChildren to Crosswalk functors. 2016-03-14 14:52:34 -04:00
Rob Rix
54a12b9c22 splitAbstractedTerm is constrained to Crosswalk functors. 2016-03-14 14:50:54 -04:00
Rob Rix
65f759069c Use a let because nested wheres are a bit gross. 2016-03-14 14:32:48 -04:00
Rob Rix
1f62641fd3 Move makeBranchTerm into adjoinChildren. 2016-03-14 14:31:24 -04:00
Rob Rix
c877cdf0d2 s/MaybeBoth/BothMaybe. 2016-03-14 14:13:46 -04:00
Rob Rix
48df75b7ed Align diffs in MaybeBoth. 2016-03-14 14:13:06 -04:00
Rob Rix
3b5f2a47b3 🔥 adjoinRows. 2016-03-14 10:35:35 -04:00
Rob Rix
79ac625dc8 Align by mappending Adjoined values. 2016-03-14 10:35:31 -04:00
Rob Rix
e968825b62 Generalize makeBranchTerm to Foldable Functors. 2016-03-14 10:00:48 -04:00
Rob Rix
59edb8ff41 splitPatchByLines returns Adjoined. 2016-03-11 17:59:58 -05:00
Rob Rix
536053ef73 Use the Monoid instance to concatenate lists.
This will allow us to swap lists out for some other Monoid.
2016-03-11 15:29:12 -05:00
Rob Rix
48af1161e7 adjoinRows takes an AlignFunction. 2016-03-11 14:27:56 -05:00
Rob Rix
a23eb6f5f8 Merge branch 'data-dot-adjoined' into adjoin-associatively
# Conflicts:
#	src/Alignment.hs
2016-03-11 13:26:12 -05:00
Rob Rix
840658720c Export a limited list of symbols. 2016-03-11 12:29:17 -05:00
Rob Rix
eb6133da70 Document childLines. 2016-03-11 12:00:06 -05:00
Rob Rix
78a095ceb7 Document adjoinChildren. 2016-03-11 11:54:39 -05:00
Rob Rix
b50e348e06 Move childRanges into childLines. 2016-03-11 11:46:36 -05:00
Rob Rix
363c6e4c72 Document AlignFunction. 2016-03-11 11:29:36 -05:00
Rob Rix
98de90ddba Use the AlignFunction type synonym more widely. 2016-03-11 11:27:49 -05:00
Rob Rix
9a65904fc5 Generalize AlignFunction from lists to arbitrary Align Applicative functors. 2016-03-11 11:27:01 -05:00
Rob Rix
b3c65733ba Remove redundant parentheses. 2016-03-11 11:25:36 -05:00
Rob Rix
5320af4637 Extract the align function parameter type into a type synonym. 2016-03-11 11:25:15 -05:00
Rob Rix
39dd494c80 Don’t close empty lines when aligning. 2016-03-10 20:14:02 -05:00
Rob Rix
55318b5f2b Name a bunch of parts of childLines. 2016-03-10 20:06:16 -05:00
Rob Rix
d84b112d91 Make the align parameter explicitly act on Lines. 2016-03-10 15:39:07 -05:00
Rob Rix
0361a5ea8c alignRows to pad out diffs. 2016-03-10 15:20:08 -05:00
Rob Rix
264cd8cbff Document alignRows. 2016-03-10 15:07:49 -05:00
Rob Rix
7572ddb79c Add a function to align rows.
This takes over from zipDefaults.
2016-03-10 15:06:03 -05:00
Rob Rix
75133aad3f 🔥 openRangePair. 2016-03-10 09:29:54 -05:00
Rob Rix
0e07398b59 🔥 the predicate parameters in coalescing and adjoining. 2016-03-10 09:19:47 -05:00
Rob Rix
5c82d1820b Use pureBy to construct lines. 2016-03-10 09:19:07 -05:00
Rob Rix
60ad5cf634 Document linesInRangeOfSource. 2016-03-10 09:08:49 -05:00
Rob Rix
f2c8d75879 Construct open or closed lines up front. 2016-03-10 09:05:16 -05:00
Rob Rix
4b29ee9916 Use the linesInRangeOfSource wrapper for leaf lines. 2016-03-10 09:02:21 -05:00
Rob Rix
6105e7ce6b Use the linesInRangeOfSource wrapper for context lines. 2016-03-10 08:53:40 -05:00
Rob Rix
d844acd9ae Add a wrapper around actualLineRanges. 2016-03-10 08:53:24 -05:00
Rob Rix
f2bb06c9c3 Reuse lineIncrement. 2016-03-10 00:56:31 -05:00
Rob Rix
9614994e53 Use the isEmpty predicate to test for line emptiness. 2016-03-10 00:37:21 -05:00
Rob Rix
bff4908e16 🔥 Data.Option. 2016-03-09 09:52:53 -05:00
Rob Rix
94aa9be081 🔥 rowRangesBy. 2016-03-09 09:40:06 -05:00
Rob Rix
a50a62d54f Note the alignment function in splitAbstractedTerm’s docs. 2016-03-09 09:36:12 -05:00
Rob Rix
3a28598e86 🔥 a redundant import. 2016-03-09 09:33:14 -05:00
Rob Rix
01afcbf5b4 🔥 splitAnnotatedByLines. 2016-03-09 09:33:08 -05:00
Rob Rix
be1f548c61 splitDiffByLines uses splitAbstractedTerm. 2016-03-09 09:30:18 -05:00
Rob Rix
402dafa6e3 Constrain the aligning function to Monoids. 2016-03-09 09:30:00 -05:00
Rob Rix
2930a96aed Pointfree. 2016-03-09 09:23:28 -05:00
Rob Rix
129055ea42 Sort keyed nodes with the assistance of an unaligning function. 2016-03-09 05:28:34 -05:00
Rob Rix
55260afb2b Expand the Row type in rowRanges. 2016-03-09 05:24:21 -05:00
Rob Rix
5d150fd816 Abstract splitAbstractedTerm over an alignment function. 2016-03-09 05:02:54 -05:00
Rob Rix
789a7d1be8 Abstract splitAbstractedTerm over an Applicative Traversable Functor. 2016-03-09 04:57:30 -05:00
Rob Rix
2a2e274084 Define splitAbstractedTerm over adjoinChildren. 2016-03-09 04:45:30 -05:00
Rob Rix
1274522dbd The Monoid instance already distributes. 2016-03-09 04:20:43 -05:00
Rob Rix
da0aff3d5f Extract the common construction stuff into a function. 2016-03-09 04:19:09 -05:00
Rob Rix
2acf80d633 Only pass a single constructor in. 2016-03-09 04:17:39 -05:00
Rob Rix
2efbb0f87d Use adjoinRowsBy. 2016-03-09 04:14:31 -05:00
Rob Rix
73aa926bdc Generalize adjoinRowsBy to any Applicative with an aligning function. 2016-03-09 04:13:09 -05:00
Rob Rix
8c36e46452 Expand the Row type synonym in adjoinRowsBy. 2016-03-09 04:09:46 -05:00
Rob Rix
4e1b48a356 Don’t pass in the adjoining function. 2016-03-09 04:09:35 -05:00
Rob Rix
dd5b94a4a2 Splitting annotated diffs uses the extracted adjoining function. 2016-03-09 04:04:51 -05:00
Rob Rix
9c180e3c48 Extract the adjoining function. 2016-03-09 04:02:00 -05:00
Rob Rix
9cebf83c5c Use the extracted childLines function for terms. 2016-03-09 03:09:13 -05:00
Rob Rix
b62d2633cc Use the extracted childLines function for diffs. 2016-03-09 02:51:42 -05:00
Rob Rix
7051991dd4 Copy the comment about increasing ranges down. 2016-03-09 02:50:31 -05:00
Rob Rix
cc73c29978 Extract the computation of child lines. 2016-03-09 02:50:02 -05:00
Rob Rix
064d7768fa Extract the computation of childRanges. 2016-03-09 02:49:05 -05:00
Rob Rix
683fc20989 Replace zipWithDefaults with zipDefaults. 2016-03-09 02:08:22 -05:00
Rob Rix
086a3d53cb 🔥 Row. 2016-03-09 01:39:18 -05:00
Rob Rix
51b9472aa4 Move the Row type synonym into Alignment.hs. 2016-03-09 01:38:59 -05:00
Rob Rix
6e735f8119 Move adjoinRowsBy into Alignment.hs. 2016-03-09 01:36:40 -05:00
Rob Rix
820d38847c 🔥 makeRow. 2016-03-09 01:35:47 -05:00
Rob Rix
cb66328f79 Replace Row with a type synonym for Both. 2016-03-09 01:35:01 -05:00
Rob Rix
ebbf19953e Stop treating EmptyLine as distinct from an empty line. 2016-03-09 00:58:09 -05:00
Rob Rix
9f26748f3b Abstract splitAnnotatedByLines over a makeTerm parameter function. 2016-03-08 23:37:11 -05:00
Rob Rix
b3db1e2bd0 Don’t reconstruct child ranges unnecessarily. 2016-03-08 23:21:02 -05:00
Rob Rix
1d54d34d77 Move the $ onto the previous line. 2016-03-08 23:01:37 -05:00
Rob Rix
e63d2b3c59 Correct the openness predicate for ranges. 2016-03-08 22:13:31 -05:00
Rob Rix
0bc811e3c1 Replace MaybeOpen with simple predicates. 2016-03-08 22:07:38 -05:00
Rob Rix
19316c600c Move the $ onto the previous line. 2016-03-07 19:40:05 -05:00
Rob Rix
40ad5700cc Rename adjoinLinesByR to adjoinLinesBy. 2016-03-07 19:36:37 -05:00
Rob Rix
f7b4ecc1c1 Rename adjoinRowsByR to adjoinRowsBy. 2016-03-07 19:36:16 -05:00
Rob Rix
ef2556aa46 Remove a redundant import. 2016-03-07 19:10:39 -05:00
Rob Rix
8f08dab33b Correct row numbering. 2016-03-07 17:13:51 -05:00
Rob Rix
bd1a3886a8 Adjoin rows to the right. 2016-03-07 16:26:49 -05:00
Rob Rix
30acf85299 Fold rightwards when adjoining. 2016-03-07 16:09:45 -05:00
Rob Rix
dd2b6b5532 Fold rightwards through diffs. 2016-03-07 16:05:40 -05:00
Rob Rix
2901586210 Correct some spacing. 2016-03-07 15:54:46 -05:00
Rob Rix
9c926017c5 Fold rightwards through terms. 2016-03-07 15:52:12 -05:00
Rob Rix
4b3bdb184e Adjoin in line. 2016-03-07 15:43:48 -05:00
Rob Rix
3015c409cc 🔥 the nested calls to adjoin.
`adjoinChildLines` & `adjoinChildRows` do this for us.
2016-03-07 15:41:37 -05:00
Rob Rix
0053558161 Expand wrapRowContents in place. 2016-03-07 13:57:23 -05:00
Rob Rix
30b3450981 Take hlint’s advice. 2016-03-07 13:14:34 -05:00
Rob Rix
3c3f171c16 Capture the child ranges in a variable. 2016-03-07 13:12:23 -05:00
Rob Rix
c895c001d1 Reformat adjoining across several lines.. 2016-03-07 13:07:19 -05:00
Rob Rix
ae70cc61c2 Document the Ranges in splitDiffbyLines’ return value. 2016-03-07 12:05:21 -05:00
Rob Rix
7a1a283402 🔥 tearDown. 2016-03-04 21:13:14 -05:00
Rob Rix
abcd9803f3 Pass the Info & Syntax in directly. 2016-03-04 21:12:49 -05:00
Rob Rix
6610745868 an. 2016-03-04 21:09:00 -05:00
Rob Rix
5c06ecc6d0 Define splitAbstractedTerm by catamorphism (more or less). 2016-03-04 21:07:26 -05:00
Rob Rix
e979a40087 Remove some unnecessary parentheses. 2016-03-04 20:46:20 -05:00
Rob Rix
5fdcfbbce9 Tear down diffs with a lambda. 2016-03-04 20:29:04 -05:00
Rob Rix
619fde974d Tacit definition of splitDiffByLines. 2016-03-04 20:26:40 -05:00
Rob Rix
f546977b33 splitAnnotatedByLines takes Both Infos directly. 2016-03-04 20:25:33 -05:00
Rob Rix
cd895d6f87 Re-enable sorting via rowRanges. 2016-03-04 20:18:57 -05:00
Rob Rix
3829f0b064 Rewrite diffRanges as rowRanges. 2016-03-04 20:18:49 -05:00
Rob Rix
7cb85f6571 Define splitDiffByLines by catamorphism. 2016-03-04 19:53:47 -05:00
Rob Rix
bb00235f4c Swap the order of the operands to splitDiffByLines. 2016-03-04 19:29:57 -05:00
Rob Rix
3a555df147 Swap the order of the operands to splitPatchByLines. 2016-03-04 19:07:54 -05:00
Rob Rix
4a4eb23cb5 Fold eagerly. 2016-03-04 18:53:35 -05:00
Rob Rix
c80c764db8 🔥 makeRanges. 2016-03-04 17:35:03 -05:00
Rob Rix
9b00836f17 Use normal Applicative style instead of makeRanges. 2016-03-04 17:34:53 -05:00
Rob Rix
999f036436 makeRanges can be defined with normal Applicative stuff. 2016-03-04 17:33:14 -05:00
Rob Rix
63b6c9a0c2 Simplify the wrapRowContents call. 2016-03-04 17:20:54 -05:00
Rob Rix
2e6eaefc0b Construct term/range pairs in makeBranchTerm. 2016-03-04 17:17:17 -05:00
Rob Rix
89db51fdf9 Union ranges from the previous indices. 2016-03-04 17:13:53 -05:00
Rob Rix
36190c5f57 🔥 the previous indices. 2016-03-04 13:11:27 -05:00
Rob Rix
c575203ef4 Union the ranges from a specific starting range. 2016-03-04 13:07:34 -05:00
Rob Rix
61e43f8c02 splitPatchByLines doesn’t take previous indices. 2016-03-04 12:28:48 -05:00
Rob Rix
0cf7ba393d Alignment returns ranged Rows. 2016-03-04 12:26:40 -05:00
Rob Rix
7a68324ddc Document makeRanges. 2016-03-04 10:01:47 -05:00
Rob Rix
b03a9ac73b Document unionLineRanges. 2016-03-04 10:00:35 -05:00
Rob Rix
4e732bc3d5 Remove some pointless parentheses. 2016-03-04 09:57:55 -05:00
Rob Rix
83e1324d5d Extract makeRanges to top-level scope. 2016-03-04 09:48:40 -05:00
Rob Rix
9b594b5967 Rename rangeForChildLines to unionLineRanges. 2016-03-04 09:42:49 -05:00
Rob Rix
1bd2cda3ca Extract the rangeForChildLines function. 2016-03-04 09:41:57 -05:00
Rob Rix
5f93a253ff fmap law. 2016-03-04 09:26:58 -05:00
Rob Rix
e933e13078 Rename wrap to makeBranchTerm. 2016-03-04 09:17:51 -05:00
Rob Rix
1af5f93512 Get the ranges using getSplitAnnotation. 2016-03-04 09:16:55 -05:00
Rob Rix
628e1426fc Combine the syntax and term constructor functions. 2016-03-04 09:05:18 -05:00
Rob Rix
ea1f53b653 Document wrap. 2016-03-04 08:54:59 -05:00
Rob Rix
4b6873dfdd Remove the inner wrap definition from splitAbstractedTerm. 2016-03-04 08:53:53 -05:00
Rob Rix
1fc20959eb Generalize the type of wrap over inTerm and outTerm parameters. 2016-03-04 08:53:26 -05:00
Rob Rix
5d8b596dda Remove some redundant parentheses. 2016-03-04 08:46:51 -05:00
Rob Rix
5aef110720 Pass the categories to wrap instead of closing over them. 2016-03-04 08:46:17 -05:00
Rob Rix
ea21e16dae Pass the term constructor to wrap instead of closing over it. 2016-03-04 08:45:47 -05:00
Rob Rix
031d50719c Use the abstracted wrap function for annotated rows. 2016-03-04 08:39:54 -05:00
Rob Rix
8b156501e0 Add a wrap function abstracted over a term constructor at the top level. 2016-03-04 08:39:40 -05:00
Rob Rix
0491aac345 Union the ranges from the previous indices. 2016-03-03 16:06:45 -05:00
Rob Rix
7a3da76448 splitAbstractedTerm returns lines containing diff/range pairs. 2016-03-03 13:41:56 -05:00
Rob Rix
aed575fa29 Pass the Range around as the second field. 2016-03-03 12:50:01 -05:00
Rob Rix
568cfa863f Single code path for zipping patches up. 2016-03-03 12:31:47 -05:00
Rob Rix
7a03c23018 Abstract the constructor over the patch. 2016-03-03 12:30:23 -05:00
Rob Rix
ff31489bce Don’t even bind these. 2016-03-03 12:28:51 -05:00
Rob Rix
26abb3da7f Unwrap Maybes into the correct ranges for either side. 2016-03-03 12:28:18 -05:00
Rob Rix
c59913da98 Unpack with maybe instead of sequencing. 2016-03-03 12:19:28 -05:00
Rob Rix
f646a14d3b Transpose replacements through unPatch. 2016-03-03 12:07:09 -05:00
Rob Rix
cc652215ac Correct the splitAbstractedTerm docs. 2016-03-03 11:46:31 -05:00
Rob Rix
c6a8aa2593 Generalize term to distinct inTerm and outTerm types. 2016-03-03 11:42:25 -05:00
Rob Rix
edc3e16e97 🔥 splitTermByLines. 2016-03-03 11:41:05 -05:00
Rob Rix
7d407c6305 Document splitAbstractedTerm. 2016-03-03 11:40:52 -05:00
Rob Rix
15026e2049 Call into splitAbstractedTerm directly for insertions/deletions too. 2016-03-03 11:36:33 -05:00
Rob Rix
a649b59eac Call into splitAbstractedTerm directly for replacements. 2016-03-03 11:33:49 -05:00
Rob Rix
88732315da Implement splitTermByLines via splitAbstractedTerm. 2016-03-03 11:29:03 -05:00
Rob Rix
a05ac7ff64 Add splitAbstractedTerm which abstracts splitTermByLines away from Term leaf Info. 2016-03-03 11:27:29 -05:00
Rob Rix
4837a5e2fb Merge branch 'moved-terms-in-keyed-nodes-shouldn’t-crash' into refactor-alignment
# Conflicts:
#	src/Alignment.hs
2016-03-03 11:05:30 -05:00
Rob Rix
5d725d69c6 Document why we’re doing this funky test. 2016-03-03 10:56:31 -05:00
Rob Rix
22ddd29583 Skip rows for bad ranges. 2016-03-03 10:53:41 -05:00
Rob Rix
8445b988b4 Revert "Add a safeRange function."
This reverts commit 2e6a8abcfd604438f22b143f86a244bab19d694e.
2016-03-03 10:42:16 -05:00
Rob Rix
e22210357d Revert "Make safe ranges."
This reverts commit 0dcfc48c8d9e441a9620adef6fc7832ef2796685.
2016-03-03 10:42:13 -05:00
Rob Rix
30c63a34a5 Revert "Add a type annotation for safeRange."
This reverts commit b456a9bfd53efec7cb61c204762773a2fdd5995e.
2016-03-03 10:42:06 -05:00
Rob Rix
9981e98a77 Revert "Move safeRange into the Range module."
This reverts commit 781f940cad93db3954ddb9f2ddd9de23c432a68f.
2016-03-03 10:42:03 -05:00
Rob Rix
e31091ecd4 Revert "Construct term ranges safely."
This reverts commit 75165616b5e550b40027118bdc67d9c25c39ae32.
2016-03-03 10:41:50 -05:00
Rob Rix
f0e5340e3c 🔥 some Copointed constraints. 2016-03-03 10:16:04 -05:00
Rob Rix
6479f02047 🔥 contextRows. 2016-03-03 10:15:23 -05:00
Rob Rix
c64e3f7ca1 Zip context ranges into leading context rows correctly. 2016-03-03 10:15:10 -05:00
Rob Rix
4d49c9f098 Zip context rows into trailing context correctly. 2016-03-03 10:13:16 -05:00
Rob Rix
00f0a877d8 Zip context rows into leaves correctly. 2016-03-03 10:10:58 -05:00
Rob Rix
ac8d2c9689 contextRows returns Both Ranges, not Rows. 2016-03-03 09:41:33 -05:00
Rob Rix
c19073ab84 🔥 openDiff. 2016-03-03 09:03:15 -05:00
Rob Rix
8e78339c39 🔥 openTerm. 2016-03-03 09:02:33 -05:00
Rob Rix
12b15f5d33 Remove Copointed constraints from the wrap functions. 2016-03-03 08:54:59 -05:00
Rob Rix
34c4c7f559 🔥 import of Data.Either. 2016-03-03 08:48:37 -05:00
Rob Rix
3461e5f3d4 🔥 openEither. 2016-03-03 08:48:29 -05:00
Rob Rix
4f9d866be4 🔥 getInfo. 2016-03-03 08:47:59 -05:00
Rob Rix
3a23d7792b fmap with &&&. 2016-03-03 08:47:37 -05:00
Rob Rix
48aacb98bc Simplify the definition of getRange. 2016-03-03 08:37:56 -05:00
Rob Rix
da941ccf06 Simplify the definition of getInfo. 2016-03-03 08:37:25 -05:00
Rob Rix
af031dfbc7 Simplify the definition of getRange. 2016-03-03 08:36:23 -05:00
Rob Rix
3d1d98e566 Add a getInfo function. 2016-03-03 08:35:36 -05:00
Rob Rix
d2c26ad37d Rewrite getRange to not be in Either. 2016-03-03 08:30:55 -05:00
Rob Rix
4023f6b285 Revert "🔥 getRange."
This reverts commit fa1913c8cec28fa9f677ebf5df2e70f1c76694f2.
2016-03-03 08:30:06 -05:00
Rob Rix
bfa909ebc0 🔥 getRange. 2016-03-03 08:19:25 -05:00
Rob Rix
2896687652 Process annotated rows in (Range, _) pairs. 2016-03-03 08:19:08 -05:00
Rob Rix
7f085a7c6d Use openRangePair instead of the ad hoc lambda. 2016-03-03 07:59:25 -05:00
Rob Rix
660cc1ad8b Document openRangePair. 2016-03-03 07:59:03 -05:00
Rob Rix
f1b8e91723 Add an open… function for (Range, _) pairs. 2016-03-03 07:58:36 -05:00
Rob Rix
31e9b0e875 🔥 getRange. 2016-03-03 07:55:16 -05:00
Rob Rix
a2775737b6 Revert "Define a pairEither function."
This reverts commit a51ca2c7e3616bef93f20d8e57db0dd7c53d0eb8.
2016-03-03 07:54:20 -05:00
Rob Rix
03e1982ec3 Pass Terms around as Range/Maybe term pairs. 2016-03-03 07:53:23 -05:00
Rob Rix
9b16c90a8f Define a pairEither function. 2016-03-03 07:35:15 -05:00
Rob Rix
b5ac83df44 Much simpler definition of getRange. 2016-03-03 00:56:32 -05:00
Rob Rix
f930c37484 Simpler definition of getRange over terms. 2016-03-03 00:55:24 -05:00
Rob Rix
8b2a87be62 Remove Has. 2016-03-02 23:24:13 -05:00
Rob Rix
dd0014d07b Use Copointed instead of Has. 2016-03-02 23:23:34 -05:00
Rob Rix
9182ac04ca Merge branch 'moved-terms-in-keyed-nodes-shouldn’t-crash' into copointed 2016-03-02 23:18:52 -05:00
Rob Rix
4a7b4b4e4f Replace extract with copoint. 2016-03-02 23:11:24 -05:00
Rob Rix
2fcbe7a0d0 Construct term ranges safely. 2016-03-02 18:55:21 -05:00
Rob Rix
e630169833 Move safeRange into the Range module. 2016-03-02 18:54:12 -05:00
Rob Rix
49b6984d49 Add a type annotation for safeRange. 2016-03-02 18:50:27 -05:00
Rob Rix
6efe8893e1 Make safe ranges. 2016-03-02 18:47:33 -05:00
Rob Rix
631778de13 Add a safeRange function. 2016-03-02 18:47:28 -05:00
Rob Rix
7dd9428dfa Use transpose to unpack the lines and ranges. 2016-03-02 18:34:26 -05:00
Rob Rix
4d11dbe90d Tidy up with the curried constructor. 2016-03-02 18:19:29 -05:00
Rob Rix
595b249391 Transpose Both terms inline. 2016-03-02 18:18:13 -05:00
Rob Rix
1f783ea59a Use runBothWith to simplify packing and unpacking. 2016-03-02 18:15:27 -05:00
Rob Rix
1dee480afd Tacit definition of unpackLinesAndRanges. 2016-03-02 18:03:35 -05:00
Rob Rix
5cee42e6b2 Add a type annotation for unpackLinesAndRanges. 2016-03-02 16:19:00 -05:00
Rob Rix
37957e5123 Rearrange the pattern matching. 2016-03-02 16:17:04 -05:00
Rob Rix
96fe83e71b Use the curried constructor. 2016-03-02 16:15:22 -05:00
Rob Rix
72a61a5855 Remove an extra line. 2016-03-02 16:12:49 -05:00
Rob Rix
45357dddac Define the line/range bindings in a where clause. 2016-03-02 16:08:49 -05:00
Rob Rix
f3f5949ac8 Document splitPatchByLines. 2016-03-02 16:05:59 -05:00
Rob Rix
6fbeda67ec Extract splitPatchByLines into a new function. 2016-03-02 16:05:34 -05:00