diff --git a/Cargo.lock b/Cargo.lock index f53eb7024a6..7b175ec677e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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" diff --git a/crates/ide/src/syntax_highlighting/highlights.rs b/crates/ide/src/syntax_highlighting/highlights.rs index c6f0417ecbf..882a685a567 100644 --- a/crates/ide/src/syntax_highlighting/highlights.rs +++ b/crates/ide/src/syntax_highlighting/highlights.rs @@ -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) { } } } - -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 - } -} diff --git a/crates/ide/src/syntax_highlighting/injector.rs b/crates/ide/src/syntax_highlighting/injector.rs index fd402569423..24ff473ecdf 100644 --- a/crates/ide/src/syntax_highlighting/injector.rs +++ b/crates/ide/src/syntax_highlighting/injector.rs @@ -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 + '_ { - 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?)