mirror of
https://github.com/github/semantic.git
synced 2024-12-22 14:21:31 +03:00
Bind lists of intersecting & nonintersecting children.
This commit is contained in:
parent
ec8fc5e7e7
commit
87b699c09a
@ -141,6 +141,7 @@ groupChildrenByLine ranges children | not (and $ null <$> ranges)
|
||||
group2 :: Join These [Range] -> [AlignedDiff leaf] -> (Join These [Range], [AlignedDiff leaf], [Join These (Range, [SplitDiff leaf Info])])
|
||||
group2 ranges children | Just (headRanges, _) <- unconsThese ranges
|
||||
, ~(group, l, r, rest) <- spanThese (intersects headRanges) children
|
||||
, ~(intersecting, nonIntersecting) <- span (or . intersects headRanges . head) children
|
||||
, merged <- pairRangesWithLine headRanges $ fmap catMaybes (Join (uncurry These (unalign (runJoin <$> join group))))
|
||||
, ~(moreRanges, moreChildren, remainingLines) <- group2 (modifyJoin (bimap (if null l && not (null r) then id else drop 1) (if null r && not (null l) then id else drop 1)) ranges) (l ++ r ++ rest)
|
||||
= (moreRanges, moreChildren, merged : remainingLines)
|
||||
|
Loading…
Reference in New Issue
Block a user