Merge #7263
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:
commit
dab210d9b2
4
Cargo.lock
generated
4
Cargo.lock
generated
@ -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"
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
@ -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?)
|
||||
|
Loading…
Reference in New Issue
Block a user