@@ -2219,6 +2219,7 @@ impl ContextEditor {
merge_adjacent: false,
};
+ let should_refold;
if let Some(state) = self.patches.get_mut(&range) {
replaced_blocks.insert(state.footer_block_id, render_block);
if let Some(editor_state) = &state.editor {
@@ -2233,6 +2234,9 @@ impl ContextEditor {
});
}
}
+
+ should_refold =
+ snapshot.intersects_fold(patch_start.to_offset(&snapshot.buffer_snapshot));
} else {
let block_ids = editor.insert_blocks(
[BlockProperties {
@@ -2266,10 +2270,14 @@ impl ContextEditor {
update_task: None,
},
);
+
+ should_refold = true;
}
- editor.unfold_ranges([patch_start..patch_end], true, false, cx);
- editor.fold_ranges([(patch_start..patch_end, header_placeholder)], false, cx);
+ if should_refold {
+ editor.unfold_ranges([patch_start..patch_end], true, false, cx);
+ editor.fold_ranges([(patch_start..patch_end, header_placeholder)], false, cx);
+ }
}
editor.remove_creases(removed_crease_ids, cx);