React on multibuffer scrolls again

This commit is contained in:
Kirill Bulatov
2023-06-29 22:25:49 +03:00
parent a31d3eca45
commit 2f1a27631e
3 changed files with 59 additions and 23 deletions
+20 -19
View File
@@ -102,27 +102,29 @@ impl InlayHintCache {
multi_buffer: ModelHandle<MultiBuffer>,
queries: Vec<InlayHintQuery>,
current_inlays: Vec<Inlay>,
conflicts_invalidate_cache: bool,
cx: &mut ViewContext<Editor>,
) {
let conflicts_with_cache = queries.iter().any(|update_query| {
let Some(cached_buffer_hints) = self.hints_in_buffers.get(&update_query.buffer_id)
let conflicts_with_cache = conflicts_invalidate_cache
&& queries.iter().any(|update_query| {
let Some(cached_buffer_hints) = self.hints_in_buffers.get(&update_query.buffer_id)
else { return false };
if cached_buffer_hints
.buffer_version
.changed_since(&update_query.buffer_version)
{
false
} else if update_query
.buffer_version
.changed_since(&cached_buffer_hints.buffer_version)
{
true
} else {
cached_buffer_hints
.hints_per_excerpt
.contains_key(&update_query.excerpt_id)
}
});
if cached_buffer_hints
.buffer_version
.changed_since(&update_query.buffer_version)
{
false
} else if update_query
.buffer_version
.changed_since(&cached_buffer_hints.buffer_version)
{
true
} else {
cached_buffer_hints
.hints_per_excerpt
.contains_key(&update_query.excerpt_id)
}
});
let queries_per_buffer = queries
.into_iter()
@@ -569,7 +571,6 @@ fn allowed_hint_types(
}
// TODO kb wrong, query and update the editor separately
// TODO kb need to react on react on scrolling too, for multibuffer excerpts
fn fetch_queries(
multi_buffer: ModelHandle<MultiBuffer>,
queries: impl Iterator<Item = InlayHintQuery>,