diff options
author | Aleksey Kladov <[email protected]> | 2021-01-10 11:36:15 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2021-01-10 11:36:15 +0000 |
commit | fc3fc571d29ccec4a4f80da35d5f77e94c6663c3 (patch) | |
tree | a7d61c74a2ea0f77bf6de84b11fc3fca72d4fb82 /crates/ide/src/syntax_highlighting/highlights.rs | |
parent | 3a6ae42eacabeef0332273db216bc287d4fff613 (diff) |
Cleaner API
Diffstat (limited to 'crates/ide/src/syntax_highlighting/highlights.rs')
-rw-r--r-- | crates/ide/src/syntax_highlighting/highlights.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/crates/ide/src/syntax_highlighting/highlights.rs b/crates/ide/src/syntax_highlighting/highlights.rs index 11c11ed28..c6f0417ec 100644 --- a/crates/ide/src/syntax_highlighting/highlights.rs +++ b/crates/ide/src/syntax_highlighting/highlights.rs | |||
@@ -51,18 +51,20 @@ impl Node { | |||
51 | } | 51 | } |
52 | } | 52 | } |
53 | 53 | ||
54 | let (start, len) = | 54 | let overlapping = |
55 | equal_range_by(&self.nested, |n| ordering(n.hl_range.range, hl_range.range)); | 55 | equal_range_by(&self.nested, |n| ordering(n.hl_range.range, hl_range.range)); |
56 | 56 | ||
57 | if len == 1 && self.nested[start].hl_range.range.contains_range(hl_range.range) { | 57 | if overlapping.len() == 1 |
58 | return self.nested[start].add(hl_range); | 58 | && self.nested[overlapping.start].hl_range.range.contains_range(hl_range.range) |
59 | { | ||
60 | return self.nested[overlapping.start].add(hl_range); | ||
59 | } | 61 | } |
60 | 62 | ||
61 | let nested = self | 63 | let nested = self |
62 | .nested | 64 | .nested |
63 | .splice(start..start + len, iter::once(Node::new(hl_range))) | 65 | .splice(overlapping.clone(), iter::once(Node::new(hl_range))) |
64 | .collect::<Vec<_>>(); | 66 | .collect::<Vec<_>>(); |
65 | self.nested[start].nested = nested; | 67 | self.nested[overlapping.start].nested = nested; |
66 | } | 68 | } |
67 | 69 | ||
68 | fn flatten(&self, acc: &mut Vec<HlRange>) { | 70 | fn flatten(&self, acc: &mut Vec<HlRange>) { |