Omit outlines from the outline panel, not related to the buffer's main language (#32987)
Closes https://github.com/zed-industries/zed/issues/15122 Release Notes: - Fixed outline panel showing extra languages' outlines
This commit is contained in:
parent
c34b24b5fb
commit
cec19aec7b
1 changed files with 9 additions and 2 deletions
|
@ -3233,15 +3233,22 @@ impl OutlinePanel {
|
||||||
self.outline_fetch_tasks.insert(
|
self.outline_fetch_tasks.insert(
|
||||||
(buffer_id, excerpt_id),
|
(buffer_id, excerpt_id),
|
||||||
cx.spawn_in(window, async move |outline_panel, cx| {
|
cx.spawn_in(window, async move |outline_panel, cx| {
|
||||||
|
let buffer_language = buffer_snapshot.language().cloned();
|
||||||
let fetched_outlines = cx
|
let fetched_outlines = cx
|
||||||
.background_spawn(async move {
|
.background_spawn(async move {
|
||||||
buffer_snapshot
|
let mut outlines = buffer_snapshot
|
||||||
.outline_items_containing(
|
.outline_items_containing(
|
||||||
excerpt_range.context,
|
excerpt_range.context,
|
||||||
false,
|
false,
|
||||||
Some(&syntax_theme),
|
Some(&syntax_theme),
|
||||||
)
|
)
|
||||||
.unwrap_or_default()
|
.unwrap_or_default();
|
||||||
|
outlines.retain(|outline| {
|
||||||
|
buffer_language.is_none()
|
||||||
|
|| buffer_language.as_ref()
|
||||||
|
== buffer_snapshot.language_at(outline.range.start)
|
||||||
|
});
|
||||||
|
outlines
|
||||||
})
|
})
|
||||||
.await;
|
.await;
|
||||||
outline_panel
|
outline_panel
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue