Change summary
crates/editor/src/display_map.rs | 4 ++++
crates/editor/src/display_map/block_map.rs | 2 ++
crates/editor/src/editor.rs | 2 ++
3 files changed, 8 insertions(+)
Detailed changes
@@ -789,6 +789,9 @@ impl DisplayMap {
.collect(),
cx,
);
+ for buffer_id in &other.block_snapshot.buffers_with_disabled_headers {
+ self.disable_header_for_buffer(*buffer_id, cx);
+ }
}
/// Creates folds for the given creases.
@@ -1003,6 +1006,7 @@ impl DisplayMap {
&self.block_map.folded_buffers
}
+ #[instrument(skip_all)]
pub(super) fn clear_folded_buffer(&mut self, buffer_id: language::BufferId) {
self.block_map.folded_buffers.remove(&buffer_id);
}
@@ -78,6 +78,7 @@ pub struct BlockSnapshot {
custom_blocks_by_id: TreeMap<CustomBlockId, Arc<CustomBlock>>,
pub(super) buffer_header_height: u32,
pub(super) excerpt_header_height: u32,
+ pub(super) buffers_with_disabled_headers: HashSet<BufferId>,
}
impl Deref for BlockSnapshot {
@@ -657,6 +658,7 @@ impl BlockMap {
custom_blocks_by_id: self.custom_blocks_by_id.clone(),
buffer_header_height: self.buffer_header_height,
excerpt_header_height: self.excerpt_header_height,
+ buffers_with_disabled_headers: self.buffers_with_disabled_headers.clone(),
},
}
}
@@ -1973,6 +1973,8 @@ impl Editor {
.clone_state(&self.scroll_manager, &my_snapshot, &clone_snapshot, cx);
clone.searchable = self.searchable;
clone.read_only = self.read_only;
+ clone.buffers_with_disabled_indent_guides =
+ self.buffers_with_disabled_indent_guides.clone();
clone
}