MCPcopy Create free account
hub / github.com/Eeive/Evcode-ide / undo

Method undo

src/editor/buffer.rs:294–315  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

292 }
293
294 pub fn undo(&mut self) -> bool {
295 let Some(record) = self.undo_stack.pop_back() else {
296 return false;
297 };
298
299 let inserted_len = record.inserted.chars().count();
300 if inserted_len > 0 {
301 self.document
302 .remove_char_range(record.start, record.start + inserted_len);
303 }
304 if !record.deleted.is_empty() {
305 self.document.insert_str(record.start, &record.deleted);
306 }
307
308 self.cursor = record.cursor_before;
309 self.cursor.clamp_to_document(&self.document);
310 self.selection_anchor = None;
311
312 self.redo_stack.push_back(record);
313
314 true
315 }
316
317 pub fn redo(&mut self) -> bool {
318 let Some(record) = self.redo_stack.pop_back() else {

Callers 1

Calls 4

remove_char_rangeMethod · 0.80
is_emptyMethod · 0.80
clamp_to_documentMethod · 0.80
insert_strMethod · 0.45

Tested by 1