Order returned ranges from marked_text_ranges by start index

This commit is contained in:
Keith Simmons 2022-05-11 10:18:40 -07:00
parent 5247246e91
commit a33ef65f57

View file

@ -61,12 +61,12 @@ pub fn marked_text_ranges(full_marked_text: &str) -> (String, Vec<Range<usize>>)
let (range_marked_text, empty_offsets) = marked_text(full_marked_text); let (range_marked_text, empty_offsets) = marked_text(full_marked_text);
let (unmarked, range_lookup) = let (unmarked, range_lookup) =
marked_text_ranges_by(&range_marked_text, vec![('[', ']'), ('(', ')'), ('<', '>')]); marked_text_ranges_by(&range_marked_text, vec![('[', ']'), ('(', ')'), ('<', '>')]);
( let mut combined_ranges: Vec<_> = range_lookup
unmarked, .into_values()
range_lookup .flatten()
.into_values() .chain(empty_offsets.into_iter().map(|offset| offset..offset))
.flatten() .collect();
.chain(empty_offsets.into_iter().map(|offset| offset..offset))
.collect(), combined_ranges.sort_by_key(|range| range.start);
) (unmarked, combined_ranges)
} }