7263: Use upstream TextSize API r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
bors[bot] 2021-01-13 18:35:08 +00:00 committed by GitHub
commit dab210d9b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 17 deletions

4
Cargo.lock generated
View File

@ -1635,9 +1635,9 @@ dependencies = [
[[package]]
name = "text-size"
version = "1.0.0"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f03e7efdedc3bc78cb2337f1e2785c39e45f5ef762d9e4ebb137fff7380a6d8a"
checksum = "288cb548dbe72b652243ea797201f3d481a0609a967980fcc5b2315ea811560a"
[[package]]
name = "text_edit"

View File

@ -1,5 +1,5 @@
//! Collects a tree of highlighted ranges and flattens it.
use std::{cmp::Ordering, iter};
use std::iter;
use stdx::equal_range_by;
use syntax::TextRange;
@ -52,7 +52,7 @@ fn add(&mut self, hl_range: HlRange) {
}
let overlapping =
equal_range_by(&self.nested, |n| ordering(n.hl_range.range, hl_range.range));
equal_range_by(&self.nested, |n| TextRange::ordering(n.hl_range.range, hl_range.range));
if overlapping.len() == 1
&& self.nested[overlapping.start].hl_range.range.contains_range(hl_range.range)
@ -90,13 +90,3 @@ fn flatten(&self, acc: &mut Vec<HlRange>) {
}
}
}
pub(super) fn ordering(r1: TextRange, r2: TextRange) -> Ordering {
if r1.end() <= r2.start() {
Ordering::Less
} else if r2.end() <= r1.start() {
Ordering::Greater
} else {
Ordering::Equal
}
}

View File

@ -5,8 +5,6 @@
use stdx::equal_range_by;
use syntax::{TextRange, TextSize};
use super::highlights::ordering;
#[derive(Default)]
pub(super) struct Injector {
buf: String,
@ -33,7 +31,7 @@ pub(super) fn text(&self) -> &str {
&self.buf
}
pub(super) fn map_range_up(&self, range: TextRange) -> impl Iterator<Item = TextRange> + '_ {
equal_range_by(&self.ranges, |&(r, _)| ordering(r, range)).filter_map(move |i| {
equal_range_by(&self.ranges, |&(r, _)| TextRange::ordering(r, range)).filter_map(move |i| {
let (target_range, delta) = self.ranges[i];
let intersection = target_range.intersect(range).unwrap();
Some(intersection + delta?)