Fix bracket colorization not working in file-less files with a proper language (#43947)

Follow-up of https://github.com/zed-industries/zed/pull/43172

Release Notes:

- Fixed bracket colorization in file-less files with a proper language
This commit is contained in:
Kirill Bulatov
2025-12-01 21:53:54 +00:00
committed by GitHub
parent 33513292af
commit de392cda39
4 changed files with 54 additions and 10 deletions
+15 -5
View File
@@ -5308,12 +5308,10 @@ impl Editor {
pub fn visible_excerpts(
&self,
lsp_related_only: bool,
cx: &mut Context<Editor>,
) -> HashMap<ExcerptId, (Entity<Buffer>, clock::Global, Range<usize>)> {
let Some(project) = self.project() else {
return HashMap::default();
};
let project = project.read(cx);
let project = self.project().cloned();
let multi_buffer = self.buffer().read(cx);
let multi_buffer_snapshot = multi_buffer.snapshot(cx);
let multi_buffer_visible_start = self
@@ -5331,6 +5329,18 @@ impl Editor {
.into_iter()
.filter(|(_, excerpt_visible_range, _)| !excerpt_visible_range.is_empty())
.filter_map(|(buffer, excerpt_visible_range, excerpt_id)| {
if !lsp_related_only {
return Some((
excerpt_id,
(
multi_buffer.buffer(buffer.remote_id()).unwrap(),
buffer.version().clone(),
excerpt_visible_range.start.0..excerpt_visible_range.end.0,
),
));
}
let project = project.as_ref()?.read(cx);
let buffer_file = project::File::from_dyn(buffer.file())?;
let buffer_worktree = project.worktree_for_id(buffer_file.worktree_id(cx), cx)?;
let worktree_entry = buffer_worktree
@@ -22592,7 +22602,7 @@ impl Editor {
if self.ignore_lsp_data() {
return;
}
for (_, (visible_buffer, _, _)) in self.visible_excerpts(cx) {
for (_, (visible_buffer, _, _)) in self.visible_excerpts(true, cx) {
self.register_buffer(visible_buffer.read(cx).remote_id(), cx);
}
}